Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 8, 2018 00:45:49

Bondgta
Зарегистрирован: 2018-02-08
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Найти n-ый член

Дано a;a^2/2! ; a^3/4!; a^4/8!;… a^n/(2^n-1)! помогите составить программу которая находит n-ый член.

Офлайн

#2 Фев. 8, 2018 04:44:17

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9895
Репутация: +  855  -
Профиль   Отправить e-mail  

Найти n-ый член

Нужно найти коэффициент геометрической прогрессии, а потом, начиная с первого члена, умножать очередной член на коэффициент, получая следующий член, пока не дойдёшь до искомого члена.
А чтобы найти коэффициент ГП, надо формулу n-ого члена разделить на формулу n-1-ого члена.

wiki. геометрическая прогрессия
Тут есть всякие быстрые способы нахождения, но они не подойдут, потому что n может быть большим числом и ты просто не вычислишь по времени или по памяти, комп повиснет.

Например, для n = 1000

  
>>> 2 ** 1000
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
>>>
Факториал такого числа уже не найдёшь, не хватит ресурсов, поэтому всё надо вычислять на лету.



Отредактировано py.user.next (Фев. 8, 2018 04:50:45)

Офлайн

#3 Фев. 8, 2018 09:55:07

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2762
Репутация: +  185  -
Профиль   Отправить e-mail  

Найти n-ый член

> А чтобы найти коэффициент ГП, надо формулу n-ого члена разделить на формулу n-1-ого члена.

Сам то ты это пробовал сделать? И с чего взял что здесь ГП?

 >>> (2. ** 3. / math.factorial(4)) / (2. ** 2. / math.factorial(3))
0.5
>>> (2. ** 4. / math.factorial(8)) / (2. ** 3. / math.factorial(4))
0.0011904761904761906



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#4 Фев. 8, 2018 10:58:44

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9895
Репутация: +  855  -
Профиль   Отправить e-mail  

Найти n-ый член

Я перепутал немного.
Про геометрическую прогрессию всё убираем, всё остальное используем. То есть формула n-ого поделить на формулу n-1-ого. Мы получим не постоянный коэфициент q, как в ГП, а переменный, зависящий от номера текущего члена последовательности. Потом полученный коэффициент умножаем на первый член, потом результат снова умножаем на коэффициент и так до n-ого шага. Естественно, тут коэффициент численно будет каждый раз новый получаться (так как зависит от переменной), но он будет точно давать каждый следующий член последовательности. При этом факториалы не вычисляются вообще.



Отредактировано py.user.next (Фев. 8, 2018 11:00:02)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version