Вычисление суммы необычного ряда - QBasic

Узнай цену своей работы

Формулировка задачи:

Чтобы понять что нам надо вычислить рассмотрим числовую последовательность 1234, 1243, ... 4321. (Это перестановки чисел 1,2,3,4) С каждой такой перестановкой связана функция. Например 1234 - sin(1sin(2sin(3sin(4x)))) 4321 - sin(4sin(3sin(2sin(1x)))) надеюсь, что понятно Требуется найти "сумму всех перестановок" при x=1
Листинг программы
  1. REM OTBET: 0.04440564
  2. DECLARE FUNCTION f! (n!, x!)
  3. CLS
  4. FOR i = 1 TO 4
  5. FOR j = 1 TO 4
  6. IF j = i THEN 100
  7. FOR k = 1 TO 4
  8. IF k = i OR k = j THEN 200
  9. l = 10 - (i + j + k)
  10. S = S + f(i, f(j, f(k, f(l, 1))))
  11. 200
  12. NEXT k
  13. 100
  14. NEXT j, i
  15. PRINT "SUMMA ="; S
  16. END
  17. FUNCTION f (n, x)
  18. f = SIN(n * x)
  19. END FUNCTION

Решение задачи: «Вычисление суммы необычного ряда»

textual
Листинг программы
  1. DECLARE FUNCTION MyNarayanaNextPerm(n AS LONG) AS LONG
  2.  
  3. DIM SHARED prmArr(1 TO 11) AS LONG
  4. DIM n AS LONG, i AS LONG, tmr AS SINGLE, x AS DOUBLE, s AS DOUBLE
  5.    
  6. FOR n = 1 TO 11
  7. FOR i = 1 TO n: prmArr(i) = i: NEXT i
  8.     tmr = TIMER
  9.     s = 0
  10.     DO
  11.         x = 1
  12.         FOR i = n TO 1 STEP -1
  13.             x = SIN(x * prmArr(i))
  14.         NEXT i
  15.         s = s + x
  16.     LOOP WHILE MyNarayanaNextPerm(n)
  17.     PRINT "s(" + LTRIM$(STR$(n)) + ") ="; s, TIMER - tmr
  18. NEXT n
  19. 'Sleep
  20.  
  21. FUNCTION MyNarayanaNextPerm(n AS LONG) AS LONG
  22.     DIM i AS LONG, k AS LONG, t AS LONG, tmp AS LONG
  23.     FOR k = n - 1 TO 1 STEP -1
  24.       IF prmArr(k) < prmArr(k + 1) THEN EXIT FOR
  25.     NEXT k
  26.     IF k THEN
  27.         t = n
  28.         WHILE t > k AND prmArr(k) >= prmArr(t)
  29.         t = t - 1
  30.         WEND
  31.         tmp = prmArr(k): prmArr(k) = prmArr(t): prmArr(t) = tmp
  32.         t = n
  33.         FOR i = k + 1 TO (n + k) \ 2
  34.             tmp = prmArr(i): prmArr(i) = prmArr(t): prmArr(t) = tmp
  35.             t = t - 1
  36.         NEXT i
  37.         MyNarayanaNextPerm = i
  38.     END IF
  39. END FUNCTION

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут