В четверг посмотрел очередной видос с Numberphile и руки зачесались кое-что проверить. Суть видео вкратце: если взять f_1 = 2.920050977316134..., и вычислять n-ный элемент по формуле

f_n+1 = ⌊f_n⌋  * (f_n - ⌊f_n⌋  + 1)

то последовательность из целых частей ⌊f_1⌋, ⌊f_2⌋, ⌊f_3⌋ ... будет совпадать с последовательностью простых чисел.

Звучит очень круто, но конечно есть подвох с тем, что первый элемент (константу Буэнос-Айреса) можно вычислить, только зная простые числа. Но даже если так, то в коде-то это будет смотреться хорошо!

Вот только точность может внести коррективы, поэтому стоит проверить: а сколько простых чисел можно сгенерировать точно? 100? 1000?

Простенький скрипт дает ответ, что все грустно: с 15 десятичными знаками в константе получится всего лишь 12 чисел: 13-ое простое число — 43, а новый метод выдаст 42. Может, если использовать decimal с сумасшедшей точностью, и предвычислить константу по формуле из оригинальной статьи, то все будет лучше? Увы, но нет: с 1000 знаками точности можно сгенерировать правильно всего лишь 166 простых чисел.

Однако все равно радует, что остались еще люди, которые вдохновляются наукой, а не всякими блоггерами и певцами ртом: оригинальная статья — от группы студентов из Аргентины, которые вдохновились другим видео с этого канала.