Различия между версиями 2 и 3
Версия 2 от 2020-10-21 19:28:45
Размер: 1321
Редактор: FrBrGeorge
Комментарий:
Версия 3 от 2020-10-21 19:30:25
Размер: 1438
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 4: Строка 4:
  $$ \frac{(640320)^{3/2}}{12\pi}=\frac{426880\sqrt{10005}}{\pi} = \sum_{k=0}^{\infty} \frac{(6k)! (545140134k + 13591409)}{(3k)!(k!)^3 (-262537412640768000)^{k}} $$   $$ \frac{(640320)^{3/2}}{12\pi}=\frac{426880\sqrt{10005}}{\pi} = \sum_{k=0}^{\infty} \frac{(6k)! (545140134k + 13591409)}{(3k)!(k!)^3 (-262537412640768000)^{k}} $$
 На каждой итерации `PiGen()` возвращает значение для очередного `k`.

Написать бесконечный генератор PiGen(), вычисляющий Decimal представление числа Пи c 9999 знаками после запятой (всего 10000☺) по алгоритму Чудновских (согласно английской Википедии Чудновских там было боле одного):

  • $$ \frac{(640320)^{3/2}}{12\pi}=\frac{426880\sqrt{10005}}{\pi} = \sum_{k=0}^{\infty} \frac{(6k)! (545140134k + 13591409)}{(3k)!(k!)^3 (-262537412640768000)^{k}} $$

  • На каждой итерации PiGen() возвращает значение для очередного k.

   1 for i, p in enumerate(PiGen()):
   2     if i>120:
   3         break
   4 print(str(p)[1400:1470])
  • Не забываем про контекст 10000
  • Тестирующая программа будет либо считать ровно 4 секунды и замерять точность, либо считать с заданной точностью, либо брать заданное количество элементов этого генератора.

7967823547816360093417216412199245863150302861829745557067498385054945


CategoryHomework

LecturesCMC/PythonIntro2020/Homework_ChudnPi (последним исправлял пользователь FrBrGeorge 2020-10-21 19:30:25)