БЛОГФорумСсылки Написать письмоПочему Арбуз? Служебная UN ЕЖЕ-движение - международный союз интернет-деятелей
top1.gif (19493 bytes)

Прогулки пилигримов по залам Пи-клуба.

Опубликовано в Hard'n'Soft №7 2002 Cтр 100

- В последующие дни я экспериментировал с
растениями, птицами и рыбами, нанизывал
спирали ДНК, составлял Периодическую
систему, изобретал законы согласования и число
"пи". Знаете, чего стоит изобрести число "пи"?
http://www.rg-rb.de/ch&k/2000/30/05.shtml

Эта статья служит продолжением, но, возможно, не завершением темы вычисления числа пи, начатой в №8 2001 статьей "Моделируя жизнь" и продолженной в №3 2002 статей "Пиратская тропинка к пи", причем в обеих статьях речь шла об экзотических проявлениях этого удивительного числа. В первой статье, напомним, оно вычислялось с помощью теории вероятности бросанием так называемой "Иглы Бюффона", а во второй с помощью соотношений взаимно простых чисел, причем обе статьи сопровождались популярной экскурсией в теорию вероятностей и теорию простых чисел. Те, кто не успел достать бумажные номера журналов, могут найти эти статьи на http://www.hardnsoft.ru/magazine.php?issue=86&article=18  и на www.arbuz.narod.ru/z_pi.html . А еще путешествующие по Сети любители математики могут встретиться с многочисленными энтузиастами числа Пи, выставляющими на своих страничках всякие чудеса, с картинками и стихами, посвященными таинственному числу и даже клубами любителей числа Пи. Предлагаем вашему вниманию некоторые исторические и программные этюды, связанные с числом Пи, а помня шутку о том, что каждая добавленная в книгу формула вдвое сокращает количество ее покупателей, будем перемежать серьезные рассуждения с прогулкой по залам виртуального клуба любителей числа Пи.

Немного истории. В Древнем Египте площадь круга диаметром d определяли как 4*(d - d/9)2. Из приведенного выражения можно заключить, что в то время число "пи" считали равным дроби (16/9)2 , или 256/81, то есть пи=3.160...

В священной книге джайнизма (одной из древнейших религий, существовавшей в Индии и возникшей в VI веке до н.э.) имеется указание, из которого следует что число пи в то время принимали равным  10^0.5, или 3.162...

Древние греки Евдокс, Гиппократ и другие сводили измерение окружности  к построению соответствующего отрезка, а измерение круга - к построению равновеликого квадрата. Однако, здесь их ожидали необъяснимые (с их точки зрения) трудности. Действительно, поскольку все построения выполнялись с помощью циркуля и линейки, все их попытки сводились к выражению отношения длины окружности к диаметру (т.е. числа "пи") рациональным числом, и поэтому заранее были обречены на провал.

Постепенно древние ученые поняли бесплодность подобных попыток и стали искать другой к подход к столь важной практической и теоретической проблеме. Так Архимед, в III веке до нашей эры предложил в своей работе "Измерение круга" три положения:

·   Всякий круг равновелик прямоугольному треугольнику, катеты которого соответственно равны длине окружности и ее радиусу

·   Площади круга относятся к квадрату, построенному на диаметре, как 11 к 14.

·   Отношение любой окружности к ее диаметру меньше чем 3 1/7 и больше 3 10/71

Последнее предложение Архимед обосновал последовательным вычислением периметров правильных вписанных и описанных многоугольников с 6, 12, 24, 48 и 96 сторонами. Таким образом, с одной стороны Архимед определил, что пи=3.1419..., а с другой, он фактически создал понятие приближенного вычисления, и определил алгоритм приближенного вычисления числа пи.

Впоследствии, практически все ученые древнего мира использовали аналогичный алгоритм в своих уточнениях числа "пи". Так в Древней Греции вскоре после Архимеда было получено более точное приближение к числу "пи" - 355/113. В V веке нашей эры китайским математиком Цзу Чунчжи было найдено более точное значение пи=3.1416927...

В первой половине XV в. н. э. в обсерватории Улугбека, возле Самарканда, астроном и математик ал-Каши вычислил число "пи" с 16 десятичными знаками. Он сделал 27 удвоений числа сторон многоугольников и дошел до многоугольника, имеющего 3*228 углов.

Формула удвоения, связывающая длины сторон an и a2n правильных n- и 2n-угольников, вписанных в окружность (диаметром=1) имеет вид:

ris0.gif (527 bytes)

Или, в символах бейсика  a2n= 0.5*sqr(2-2*sqr(1-an^2)),  n>=3

Попробуем и мы, с помощью Visual Basic'a  посчитать этим методом значение пи. Каждое удвоение сторон дает многоугольник, более близкий к окружности, а начинают обычно с шестиугольника, так как сторона его равна радиусу описанной окружности. Итак...

Dim a1n As Double, a2n As Double, pi As Double, i As Integer, n As Double, m As Integer
Private Sub Комманда1_Click()
qq = "c:\qqq.txt"
Open qq For Output As #1
a1n = 0.5
For i = 6 To 20
    m = i - 5 ' степень 2 * 3
    n = 3 * 2 ^ m ' кол. сторон
    a2n = 0.5 * Sqr(2 - 2 * Sqr(1 - a1n * a1n))
    pi = a2n * 2 * n
    Print #1, "3*2^"; i - 5; "="; n, pi, pi - 3.14159265358979
    a1n = a2n
Next i
Close qqq
End Sub
Private Sub Комманда2_Click()
    End
End Sub

3*2^ 1 = 6    3,10582854123025 -3,57641123595402E-02
3*2^ 2 = 12   3,13262861328124       -8,96404030855313E-03
3*2^ 3 = 24   3,13935020304687 -2,24245054291794E-03
3*2^ 4 = 48   3,14103195089053 -5,60702699260229E-04
3*2^ 5 = 96   3,14145247228534 -1,40181304445708E-04
3*2^ 6 = 192 3,14155760791162       -3,5045678167922E-05
3*2^ 7 = 384 3,14158389214894 -8,76144085415476E-06
3*2^ 8 = 768 3,14159046323676 -2,1903530282863E-06
3*2^ 9 = 1536      3,14159210604305 -5,47546741724858E-07
3*2^ 10 = 3072     3,14159251658815 -1,37001635369671E-07
3*2^ 11 = 6144     3,14159261864079 -3,49490005824293E-08
3*2^ 12 = 12288    3,14159264532122 -8,26857426972083E-09
3*2^ 13 = 24576    3,14159264532122 -8,26857426972083E-09
3*2^ 14 = 49152    3,14159264532122 -8,26857426972083E-09
3*2^ 15 = 98304    3,14159264532122 -8,26857426972083E-09

Первый столбик показывает число сторон вписанного многоугольника, второй - отношение его периметра к диаметру окружности, а третий - отклонение этого отношения от известного значения пи. Уже на 12 шагу мы получаем 12288-угольник, который дает значение пи с точностью до девятого знака после запятой. Дальнейшая работа программы уточнения не дает, это связано с возведением в квадрат и извлечением корня из числа, объявленного как double. Для применения метода удвоения придется искать какие-нибудь ухищрения, атака "в лоб" дала результаты, может, и неплохие, но по сравнению с результатами Ал-Каши просто смехотворные.  Кто надумает, как обойти ограничения на длину числа в Бейсике, пишите.  А мы переходим в следующий зал нашего виртуального клуба.

Христиан Крюзер, давний любитель числа пи не только взял это число с собой в полет, но и заставил его (наверняка не спросив) совершить прыжок вместе с группой парашютистов (http://www.astro.univie.ac.at/~wasi/PI/proclaiming_pi/flying_high.html )

ris1.jpg (10456 bytes)

Он же установил памятный знак пи на одной из высочайших вершин мира - пике Ленина. (http://www.astro.univie.ac.at/~wasi/PI/proclaiming_pi/on_pik_lenin.html )

ris2.jpg (7744 bytes)

Другой энтузиаст Вернер Лехманн выложил на земле мозаику, цвета плиток в которой соответствуют цифрам числа пи, и гордо на ней восседает. (http://www.jvshly.de/piworld/pimosa.htm ). Вот уж кто прочувствовал цифры пи буквально своими руками.

ris3.jpg (10945 bytes)

Вот это увлеченность, даже завидно стало. Представляете - жизнь, наполненная пи! Это вам не пустяки.

Да и нас, кстати, ждут еще дела.  Вспомним известный со школы способ определения пи вписыванием в окружность многоугольника или описыванием многоугольника вокруг окружности. Если рассматривать отношение периметра многоугольника к диаметру окружности, то при увеличении числа сторон многоугольника оно должно стремиться к пи.  Причем, для вписанного многоугольника "снизу", увеличиваясь, а для описанного "сверху", уменьшаясь. Особенно быстро должно приближаться к пи среднее арифметическое этих двух встречных приближений. Знатоки и даже троечники согласятся, что половина стороны многоугольника, описанного вокруг окружности с радиусом 1 равна a=1/Sin(Fi), а половинка стороны вписанного соответственно b=1/tan(Fi), где Fi - половинка центрального угла, опирающегося на сторону многоугольника. Fi=360/n/2 в градусах, или  Fi=Пи/n в радианах. С точки зрения методики "чистого" отыскания Пи здесь не все гладко, ведь при переводе в радианы мы используем готовое известное значение пи, но у нас не стоит академическая задача методологической чистоты рассуждений, просто мы посмотрим, как быстро "уточняется" значение пи при увеличении числа сторон многоугольников. И вот наше воплощение и результат его.

Dim fi As Double, pi As Double, pi1 As Double, i As Integer, n As Double, m As Integer
Private Sub Комманда1_Click()
qq = "c:\qqq2.txt"
Open qq For Output As #1
pi = 3.14159265358979
For n = 3 To 20 Step 1
    fi = pi / n
    pi1 = n * (Sin(fi) + Tan(fi)) / 2
    Print #1, n, n * Sin(fi), n * Tan(fi), pi1, pi1 - pi
Next n
Close #1
End Sub
Private Sub Комманда2_Click()
    End
End Sub


3  2,59807621135331   5,19615242270662   3,89711431702997   0,755521663440177
4  2,82842712474619   3,99999999999999   3,41421356237309   0,2726209087833
5  2,93892626146236   3,6327126400268   3,28581945074458   0,144226797154791
6  3 3,46410161513775   3,23205080756887   9,04581539790841E-02
7  3,0371861738229  3,3710223316527   3,2041042527378   6,25115991480101E-02
8  3,06146745892072   3,31370849898476   3,18758797895274   4,59953253629459E-02
9  3,07818128993102   3,27573210839582  3,17695669916342   3,53640455736266E-02
10  3,09016994374947   3,24919696232906   3,16968345303927   2,80907994494752E-02
11  3,09905812525572   3,22989142232203   3,16447477378888  2,28821201990872E-02
12  3,10582854123025   3,21539030917347   3,16060942520186   1,90167716120677E-02
13  3,11110363573825   3,2042122194157   3,15765792757698   0,016065273987186
14  3,1152930753884   3,1954086414621   3,15535085842525   1,37582048354572E-02  
15 3,11867536226639   3,18834842505033   3,15351189365836   1,19192400685675E-02
16  3,12144515225805   3,18259787807452   3,15202151516629   1,04288615764969E-02
17  3,12374180288169   3,17785075083561   3,15079627685865   9,20362326886037E-03
18  3,12566719800474   3,17388565275237   3,14977642537855   8,18377178876473E-03
19  3,12729721533394   3,17053923805149   3,14891822669271   7,32557310292492E-03
20  3,12868930080461   3,16768880649072   3,14818905364767   6,59640005787798E-03

В первом столбике число сторон многоугольника, во втором отношение периметра описанного многоугольника к диаметру, в третьем то же для вписанного, в четвертом их среднее значение, а в пятом отклонение от известных эталонных цифр. Мы все это проделали чтобы убедиться в том, что пи уточняется довольно медленно - для двадцатиугольника разница среднего значения с эталоном в третьем знаке после десятичной точки и уменьшается она (разница) не слишком быстро. Поэтому предпримем отчаянный ход - будем резче, десятикратно на каждом шаге цикла, увеличивать количество сторон многоугольников.

Private Sub Комманда1_Click()
qq = "c:\qqq3.txt"
Open qq For Output As #1
pi = 3.14159265358979
For i = 1 To 8
    n = 10 ^ i
    fi = pi / n
    pi1 = n * (Sin(fi) + Tan(fi)) / 2
    Print #1, n, n * Sin(fi), n * Tan(fi), pi1, pi1 - pi
Next i
Close qqq
End Sub

 10    3,09016994374947   3,24919696232906   3,16968345303927   2,80907994494752E-02
 100   3,14107590781283   3,14262660433511   3,14185125607397   2,58602484179082E-04
 1000 3,14158748587956   3,14160298905615   3,14159523746786   2,58387806661986E-06
 10000      3,14159260191266   3,14159275694405   3,14159267942836   2,58385659535065E-08
 100000     3,14159265307302   3,14159265462333   3,14159265384818   2,58385757234691E-10
 1000000    3,14159265358462   3,14159265360013   3,14159265359237   2,58371102290766E-12
 10000000   3,14159265358974   3,14159265358989   3,14159265358982   2,57571741713036E-14
 100000000  3,14159265358979   3,14159265358979   3,14159265358979   0

Тут уж желаемый результат на лицо, посмотрите, как уточнялось наше пи от миллионного знака для тысячеугольника до десятимиллиардного для статысячеугольника и за пределами представления чисел двойной точности, то есть до пятнадцатого знака после десятичной точки для "стомиллионоугольника".  Кстати, обратите внимание на первые значащие цифры разности найденного значения пи с эталонным - они почти везде равны 2.5, почему бы это? Поразмышляйте, пока будем отдыхать в следующем зале нашего клуба.

Почитатель числа пи Экхард Коен нанес на стекло размером 60х60 см узор, основанный на 250 000 знаках любимого числа и соорудил из него журнальный столик. Теперь счастливый автор, как сказано на http://www.jvshly.de/piworld/pi_table.htm, может наслаждаться чашкой чая, рассуждая о фантастической красоте окружающего мира.

ris4.JPG (9586 bytes)

А еще на соседней страничке того же любителя числа пи  http://www.jvshly.de/piworld/_pisign.htm вы можете получить персональный значок (или подпись - pisign) выделенный из цифр числа пи на основании ваших персональных данных - даты и места рождения. Например, такие.

ris5.JPG (5787 bytes)   ris6.JPG (3045 bytes)

Для получения такого персонального пи-значка всем желающим авторы странички предлагают писать письма с личными данными на адрес mailto:hly@jvshly.de, вам вышлют номер счета для оплаты суммы  в размере pi3/2 = 15,00 долларов, после получения сгенерируют ваш значок и вышлют его в виде картинки или зип-архива.

На этой же страничке вы найдете целую галерею изображений, полученных из цифр числа пи, например, такое.

Ris7.JPG (28618 bytes)

Этот шедевр достоин украсить любую коллекцию абстрактной живописи, не правда ли?

А еще любители числа пи выложили на http://home.t-online.de/home/HAEL.YGGS/picur.htm  необычайные фотографии, подтверждающие таинственное свойство этого числа появляться в самых неожиданных местах, причем не только в виде самого числа, но, самое невероятное, и в виде символа, обозначающего это число. Например, в виде снежных языков на склонах гор, в перекрещивающихся ветках деревьев, в прожилках обычных камней, в железяке для швартовки лодок и даже в струйках воды, стекающих с рук в умывальник!

Ris8.jpg (11204 bytes) 
  Ris9.jpg (16560 bytes)

Ris10.jpg (9436 bytes) 

Ris11.jpg (5833 bytes)
Ris12.jpg (14416 bytes)

А еще на той же страничке приверженцы пи обнаружили в Лейпциге на улице Rietschelstrasse таинственное яйцо с нанесенными на нем 2345 цифрами числа пи. И вместо того, чтобы искать птицу или крокодила, снесших это чудо, они рассуждают о том, что космические сферы не обязательно сферические, что им больше подходит форма яйца, вот такие чудаки. Они же, к дню рождения Хуберта Риттера (Hubert Ritter, 1886 - 1967),  архитектора из Лейпцига, применявшего в строительстве элементы окружностей, создали мозаику из 1886 элементов, ячейки которой раскрашены, вы уже догадались, по цифрам числа пи.

Ris13.jpg (18159 bytes)

Ris14.jpg (12191 bytes)

Приглашаю всех повнимательнее отнестись к окружающему нас на каждом шагу проявлению таинственного числа, фотографируйте и присылайте в Арбузный клуб числа пи www.arbuz.narod.ru/z_piclub.htm  природные его появления или самодельные конструкции.

Отдохнули? Движемся дальше. После разработки методов дифференциального и интегрального исчисления было найдено много формул, которые содержат число "пи". Некоторые из этих формул позволяют вычислять "пи" приемами, отличными от метода Архимеда и более рациональными. Так к числу "пи" можно прийти, отыскивая пределы некоторых рядов.

Так Г.Лейбниц (1646-1716) получил в 1674г. ряд ,который дал возможность вычислить "пи" более коротким путем, нежели Архимед.

Пи=4*(1-1/3+1/5-1/7+1/9-1/11…)

Рассмотрев внимательно формулу найдем выражение для общего члена ряда в скобках

an=((-1)^n)/(2*n+1), что позволит написать несложную программу и проверить действенность формулы:

Dim pi As Double, i As Integer
Private Sub Комманда1_Click()
qq = "c:\qdq.txt"
Open qq For Output As #1
pi = 0
For i = 0 To 100
    pi = pi + ((-1) ^ i) / (2 * i + 1)
    Print #1, i, 4 * pi, a1n, 4 * pi - 3.14159265358979
Next i
Close #1
End Sub
Private Sub Комманда2_Click()
    End
End Sub

0    4 1 0,85840734641021
 1    2,66666666666667 -0,333333333333333     -0,474925986923123
 2       3,46666666666667   0,2      0,325074013076877
 3    2,8952380952381   -0,142857142857143     -0,246354558351694
 4    3,33968253968254   0,111111111111111 0,19808988609275
 5    2,97604617604618 -9,09090909090909E-02 -0,165546477543614
 6    3,28373848373848   7,69230769230769E-02   0,142145830148694
 7    3,01707181707182 -6,66666666666667E-02 -0,124520836517972
 8    3,25236593471888   5,88235294117647E-02   0,110773281129087
 9    3,0418396189294   -5,26315789473684E-02 -9,97530346603868E-02
 10   3,23231580940559   4,76190476190476E-02   9,07231558158039E-02

Прервем программу на минуточку. Здесь выводятся: в первом столбике номер счетчика цикла, он же номер дроби, участвующей в расчете, во втором искомое наше пи, в третьем значение прибавляемой на этом шаге дроби, а в четвертом, как и ранее, разница найденного значения пи и эталонного. Рассмотрение процесса говорит о том, что ряд приближается к пи до обидного медленно, так как текущее значение дроби быстро уменьшается и влияет на сумму рядя все слабее и слабее. Десять шагов цикла не дали даже первую десятичную цифру. Пропустим несколько строк.

46   3,16286684275088   0,010752688172043 2,12741891610944E-02
 47   3,12076157959299 -1,05263157894737E-02 -2,08310739968005E-02
 48   3,16199869299505      1,03092783505155E-02   2,04060394052612E-02
 49   3,12159465259101 -1,01010101010101E-02 -0,019998000998779
 50   3,16119861298705   9,9009900990099E-03    1,96059593972606E-02
 51   3,12236366153074 -9,70873786407767E-03 -0,01922899205905
 52   3,16045889962598   9,52380952380952E-03   1,88662460361879E-02

Пятьдесят дробей так и не дали вторую цифру после точки... еще пропустим...

95   3,13117626945498 -5,23560209424084E-03 -1,04163841348082E-02
 96   3,15190165805602   5,18134715025907E-03   1,03090044662282E-02
 97   3,1313888375432   -5,12820512820513E-03 -1,02038160465923E-02
 98   3,15169340607112   5,0761421319797E-03    1,01007524813266E-02
 99   3,13159290355855 -5,0251256281407E-03   -9,99975003123632E-03
 100 3,15149340107099   4,97512437810945E-03   9,9007474812014E-03

А вот и неутешительный результат ста шагов программы – до второй цифры так и не добрались. Остается утешиться мыслями о том, что отрицательный результат тоже результат, что интерес у нас чисто обзорно-исторический, что хотя формула ряда и сам ряд найдены правильно, но для быстрого нахождения пи они непригодны. Снова отдых в следующем салоне клуба.

Если до этого мы рассматривали картинки, мозаики и фотографии, то теперь обратимся к жанру эпистолярному. Есть красивая старинная и вечноактуальная задача: подумаем, как легче запомнить значение Пи? Это можно сделать, например, с помощью старинного двустишья. Оно  написано по правилам старой русской орфографии, по которой после согласной в конце слова обязательно ставился "мягкий" или "твердый" знак. Вот оно, это двустишие:

Кто и шутя, и скоро пожелаетъ
"Пи" узнать число - ужъ знаетъ.
Количество букв в каждом слове равно соответствующей цифре числа Пи, проверьте! Первую тройку, естественно, отделите точкой.

А почему, собственно, мы должны пользоваться дореволюционными стихами? Ведь это же не сложно, написать такое стихотворение! Причем, такое стихотворение напрямую связано с другим проявлением математической словесности – цифровыми стихами, подробнее о них смотрите альманах «Полторы трубы» на www.arbuz.narod.ru/z_truba.htm Попробуйте сочинить, увлекательное занятие, и присылайте, размещу в клубе, прославитесь.

А вот (http://www.go2net.com/useless/useless/pi.html )варианты на английском: "How I want a drink, alcoholic of course, after the heavy lectures involving quantum mechanics!", тоже количество букв равно цифрам пи, но перевод с педагогической точки зрения весьма сомнителен. Иеще:

Now
I even I
Would celebrate
In rhymes unapt
The great immortal Syracusan
Rivaled nevermore
Who in his wondrous lore
Passed on before
Gave men his guidance
How to circles mensurate


А вот созвучное ему тоже про Сиракузы стихотворение С. Боброва (http://mathem-poem.narod.ru/nach/chisla/3cif.htm ) не мнемоническое, но тоже с запоминанием цифр числа Пи:

Гордый Рим трубил победу
Над твердыней Сиракуз;
Но трудами Архимеда
Много больше я горжусь.
Надо нынче нам заняться,
Оказать старинке честь,
Чтобы нам не ошибаться,
Чтоб окружность верно счесть,
Надо только постараться
И запомнить все как есть
Три - четырнадцать -
пятнадцать - девяносто два и шесть!

И еще стихотворение с присутствием Пи, наверняка известное читателям, из Алисы в переводе Б. Заходера:

Математик и Козлик
Делили пирог.
Козлик скромно сказал:
- Раздели его вдоль!
- Тривиально! - сказал Математик.
- Позволь,
Я уж лучше
Его разделю поперек!
- Первым он ухватил
Первый кус пирога.
Но не плачьте,
Был тут же наказан порок:
"Пи" досталось ему
(А какой в этом прок?!)
А Козленку...
Козленку достались
Рога!

Лежит этот стишок на http://www.weekend.ru/print.cfm?publication=4444 , прекрасной странице, посвященной Пи. На ней мы узнаем, например, что на http://www.hut.fi/~mnippula/votepi.html проводилось голосование на тему:  чему должно быть равно число Пи в будущем? Большинством голосом решено, что Пи=42. Вот так полагаться на большинство.

Удивительная волшебница Ева Андерссон из Калифорнии, девушка с зеленым лицом и рожками-антенами (у многих ли хватит смелости и чувства юмора выложить себя в таком виде, смотрите http://www.ugcs.caltech.edu/~eveander/index.html ) разработала викторину, посвященную числу Пи. Если вы не сможете ответить на 25 тестов, то получите, если знаете английский, познавательные ответы на них. Но, главное, Ева написала поэму, посвященную числам Пи и е, вот ее начало.

There once was a number named pi
Who frequently liked to get high.
All he did every day
Was sit in his room and play
With his imaginary friend named i.

Дословный перевод весьма сомнителен (get high - жаргонное "тащиться", ширяться, балдеть от наркоты, может, поэтому у нее зеленое лицо?) поэтому предлагаю умеренный лимерик:

В числовой бесконечной степи
Жило всеми любимое Пи
Чтоб быть больше букашки
Пропускало рюмашку
С ним дружило лишь мнимое i

Отдохнули? Снова труба зовет в бой. Среди многочисленных задач, связанных с числом пи одна из самых красивых, можно сказать, этюдная, нахождение двух целых чисел, частное от деления которых дает приближенное значение пи. В продолжение известных с глубокой древности пар чисел 22/7 и 355/113. Последнее дает значение, равное 3,14159292035398230088495575221239 на редкость точное, отличается от эталона «аж» с седьмого знака, что превосходит результат многих более крупных пар чисел.  Любители фатальных закономерности могут на http://www.ihep.su/~kovalev/lasers.html ознакомиться с невероятной связью числа 113 не только с числом пи, но и с катастрофами и расписаниями электричек.

Итак, мы хотим отыскать пару чисел, которые при делении друг на друга дают пи. Открываем два цикла – внешний, от 10 (предположим, это не так важно) до верхнего выбранного предела, например, до 10 000 000 как в приведенном листинге программы. И внутренний цикл, проверка делителей для каждого числа внешнего цикла. И вот тут можно предложить интересный оптимизирующий прием – внутренний цикл проделывать в пределах чисел, не намного отличающихся от деления числа внешнего цикла на приближенное значение пи. Это намного сократит количество проверяемых вариантов, хотя, возможно, не исключен риск «потерять» какое-либо интересное решение. Пределы внешнего цикла, границы внутреннего и точность поиска подбираются при отладке, предлагаем вариант, находящий пары чисел, дающие при делении друг на друга число пи с точностью до 12 знака после десятичной точки.

Dim a As Double, b As Double, pi As Double, pipi As Double
Private Sub Eiiiaiaa1_Click()
qq = "d:\qqq1q.txt"
Open qq For Output As #1
pi = 3.14159265358979
For a = 10 To 10000000
    b1 = Int(a / 3.142)
    b2 = Int(a / 3.141)
    For b = b1 To b2
  pipi = a / b
  If Abs(pi - pipi) < 0.0000000001 Then Print #1, a, b, Abs(pipi - pi)
    Next b
   Next a
 Print "*********************************************************************"
Close #1
 End Sub
Private Sub Eiiiaiaa2_Click()
    End
End Sub

 833719   265381   8,71214211883853E-12
 1146408 364913   1,61382018859513E-12
 1459097 464445   7,51443351987291E-12
 1667438 530762   8,71214211883853E-12
 1980127 630294   2,73381317583699E-12
 2292816 729826   1,61382018859513E-12
 2501157 796143   8,71214211883853E-12
 2605505 829358   4,91828799908944E-12
 2813846 895675   4,50528503392889E-12
 2918194 928890   7,51443351987291E-12
 3126535 995207   1,13953291247526E-12
 3230883 1028422 9,6078700551061E-12
 3334876 1061524 8,71214211883853E-12
 3439224 1094739 1,61382018859513E-12
 3647565 1161056 5,46673817325427E-12
 3751913 1194271 3,9084291358904E-12
 3960254 1260588 2,73381317583699E-12
 4064602 1293803 5,84998716135487E-12
 4168595 1326905 8,71214211883853E-12
 4272943 1360120 4,01012556494607E-13
 4377291 1393335 7,51443351987291E-12
 4481284 1426437 6,07069949865036E-12
 4585632 1459652 1,61382018859513E-12
 4689980 1492867 8,95639118425606E-12
 4793973 1525969 3,77342601609598E-12
 4898321 1559184 3,37152528118168E-12
 5002314 1592286 8,71214211883853E-12
 5106662 1625501 1,75770509258655E-12
 5211010 1658716 4,91828799908944E-12
 5315003 1691818 6,48503473144046E-12
 5419351 1725033 2,53130849614536E-14
 5523699 1758248 6,28963547910644E-12
 5627692 1791350 4,50528503392889E-12
 5732040 1824565 1,61382018859513E-12
 5836033 1857667 8,71214211883853E-12
 5836388 1857780 7,51443351987291E-12
 5940381 1890882 2,73381317583699E-12
 6044729 1924097 3,03801428458428E-12
 6148722 1957199 6,78701539413851E-12
 6149077 1957312 8,61444249267151E-12
 6253070 1990414 1,13953291247526E-12
 6357418 2023629 4,32232027947066E-12
 6461411 2056731 5,04796204836566E-12
 6461766 2056844 9,6078700551061E-12
 6565759 2089946 3,02868841117743E-13
 6669752 2123048 8,71214211883853E-12
 6670107 2123161 5,48627809848767E-12
 6774100 2156263 3,46966899655854E-12
 6878448 2189478 1,61382018859513E-12
 6982441 2222580 7,01705360484084E-12
 6982796 2222693 6,54543086398007E-12
 7086789 2255795 2,03037586743449E-12
 7191137 2289010 2,8110846983509E-12
 7295130 2322112 5,46673817325427E-12
 7295485 2322225 7,51443351987291E-12
 7399478 2355327 7,13207271019201E-13
 7503471 2388429 8,71214211883853E-12
 7503826 2388542 3,9084291358904E-12
 7607819 2421644 4,04432043410452E-12
 7608174 2421757 8,40350011799273E-12
 7712167 2454859 4,9782400424192E-13
 7816160 2487961 7,19779791324981E-12
 7816515 2488074 4,91828799908944E-12
 7920508 2521176 2,73381317583699E-12
 7920863 2521289 9,22240062095625E-12
 8024856 2554391 1,61382018859513E-12
 8128849 2587493 5,79980508064182E-12
 8129204 2587606 5,84998716135487E-12
 8233197 2620708 1,52322598978571E-12
 8233552 2620821 9,97912863454076E-12
 8337190 2653810 8,71214211883853E-12
 8337545 2653923 2,64632760149652E-12
 8441538 2687025 4,50528503392889E-12
 8441893 2687138 6,71285249609355E-12
 8545886 2720240 4,01012556494607E-13
 8649879 2753342 7,34345917408064E-12
 8650234 2753455 3,60467211635296E-12
 8754227 2786557 3,30313554286477E-12
 8754582 2786670 7,51443351987291E-12
 8858575 2819772 6,42152997443191E-13
 8962568 2852874 6,07069949865036E-12
 8962923 2852987 4,49551507131218E-12
 9066916 2886089 2,18403073404261E-12
 9067271 2886202 8,26050339242101E-12
 9170909 2919191 8,71214211883853E-12
 9171264 2919304 1,61382018859513E-12
 9275257 2952406 4,88320495151129E-12
 9275612 2952519 5,32640598294165E-12
 9379605 2985621 1,13953291247526E-12
 9379960 2985734 8,95639118425606E-12
 9483598 3018723 7,46380734995E-12
 9483953 3018836 2,52153853352866E-12
 9587946 3051938 3,77342601609598E-12
 9588301 3052051 6,10356210017926E-12
 9691939 3085040 9,93383153513605E-12
 9692294 3085153 1,62536650805123E-13
 9692649 3085266 9,6078700551061E-12
 9796287 3118255 6,29540863883449E-12
 9796642 3118368 3,37152528118168E-12
 9900635 3151470 2,73381317583699E-12
 9900990 3151583 6,83098022591366E-12

Заметив же среди отчетов о точности в правом столбике значения 10-13 и даже 10-14 модифицируем программу, ужесточив условие вывода результата на печать (вернее, в файл) и, соответственно, сузив границы внутреннего цикла:

For a = 10 To 10000000
    b1 = Int(a / 3.1416)
    b2 = Int(a / 3.1415)
    For b = b1 To b2
  pipi = a / b
  If Abs(pi - pipi) < 0.000000000001 Then Print #1, a, b, Abs(pipi - pi)
    Next b
 Next a

 4272943 1360120 4,01012556494607E-13
 5419351 1725033       2,53130849614536E-14
 6565759 2089946 3,02868841117743E-13
 7399478 2355327 7,13207271019201E-13
 7712167 2454859 4,9782400424192E-13
 8545886 2720240 4,01012556494607E-13
 8858575 2819772       6,42152997443191E-13
 9692294 3085153 1,62536650805123E-13

Мы получили 8 пар чисел в пределах 10 000 000, дающих самые точные значения пи. Вторая пара даже до 14 знака после точки. Причем еще и видно, что шестая пара чисел вдвое больше первой пары, что и объясняет одинаковый результат. Программа работает долго – на PIII-700 с 128Мб ОЗУ в фоновом режиме считает от 10 до 30 минут.

Мой сотрудник при решении той же задачи поиска пары чисел, дающих при делении число пи предложил оригинальную идею. А именно – смоделировать процесс деления чисел по аналогии с обычным делением столбиком. Это позволяет рассматривать делимое не целиком, а только небольшую часть его, которую можно объявит как переменную целого типа Integer или long. На подбор пары чисел, дающих пи до семнадцатого знака после точки Celeron 430 (64Мб ОЗУ) затратил около суток, с результатами можно ознакомиться на www.pageofmax.narod.ru/pi.htm . Они сведены в таблицу, в которой видны «нарастающие» результаты работы программы.

число совпадающих цифр

делимое

делитель

частное

5

333

106

3.1415

7

355

113

3.141592

8

86 953

27 678

3.1415926

9

102 928

32 763

3.14159265

10

103 993

33 102

3.141592653

11

521 030

165 849

3.1415926535

12

833 719

265 381

3.14159265358

13

4 272 943

1 360 120

3.141592653589

14

20 530 996

6 535 219

3.1415926535897

15

74 724 506

23 785 549

3.14159265358979

16

165 707 065

52 746 197

3.141592653589793

17

411 557 987

131 002 976

3.1415926535897932

Все, больше не будем ничего вычислять. Просто, для особенно любознательных, напомним, что хронология уточнения пи в компьютерную эпоху согласно http://www-groups.dcs.st-and.ac.uk/~history/HistTopics/Pi_chronology.html выглядит таким образом:

1949 год- 2037 десятичных знаков (Джон фон Нейман, ENIAC),
1958 год- 10000 десятичных знаков (Ф.Женюи, IBM-704),
1961 год- 100000 десятичных знаков (Д.Шенкс, IBM-7090),
1973 год- 10000000 десятичных знаков (Ж.Гийу, М.Буйе, CDC-7600),
1986 год- 29360000 десятичных знаков (Д.Бейли, Cray-2),
1987 год- 134217000 десятичных знаков (Т.Канада, NEC SX2),
1989 год- 1011196691 десятичных знаков (Д.Чудновски и Г.Чудновски, Cray-2+IBM-3040)
Они же добились в 1991 году 2260000000 знаков, а в 1994 году - 4044000000 знаков. Дальнейшие рекорды принадлежат японцу Тамуре Канада: в 1995 году 4294967286 знаков, в 1997 - 51539600000, и, последний на сегодня рекорд 206.158.430.000 знаков. Суперкомпьютер (проект HINTS  -  High-performance Numerical Tools & Software для сверхмощных научных и инженерных вычислений http://www.hints.org/HINTSw.html) в сентябре 1999 года работал 37 часов 21 минуту 4 секунды используя 865 Гигабайт памяти для основной задачи и 46 часов, 816 Гигабайт для вспомогательной оптимизации вычислений. Подробнее на http://pw1.netcom.com/~hjsmith/Pi/Rec206.html

В Сети много страниц, посвященных вычислению Пи, отметим лишь, что на http://www.cs.unb.ca/~alopez-o/math-faq/mathtext/node12.html расположена программа, написанная Диком Т. Винтером (Dik T. Winter at CWI) на Си всего 160-ю символами, но вычисляющая 800 знаков Пи!

int a=10000,b,c=2800,d,e,f[2801],g;main(){for(;b-c;)f[b++]=a/5; for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)for(b=c;d+=f[b]*a, f[b]=d%--g,d/=g--,--b;d*=b);}

К экзотическим методам вычисления пи вроде использования теории вероятности или простых чисел принадлежит и метод, придуманный Г.А. Гальпериным, и называемый Пи-биллиардом, который основан на оригинальной модели. При столкновении двух шаров, меньший из которых находится между большим и стенкой, и больший движется к стенке, число соударений шаров позволяет вычислить Пи со сколь угодно большой наперед заданной точностью. Надо только запустить процесс (можно и на компьютере) и посчитать число ударов шаров. Программная реализация этой модели пока не известна, может, кто-то из читателей проявит инициативу. Подробное описание метода с обоснованием его смотрите на http://phys.web.ru/db/msg.html?mid=1161679&uri=pi.html

Интересные данные о распределении цифр Пи.

В первых 200,000,000,000 десятичных знаках Пи цифры встречались с такой частотой:
'0' : 20000030841;
'1' : 19999914711;
'2' : 20000136978;
'3' : 20000069393
'4' : 19999921691;
'5' : 19999917053;
'6' : 19999881515;
'7' : 19999967594
'8' : 20000291044;
'9' : 19999869180;
То есть цифры распределены почти равномерно. Поразмышляйте об этом.

И еще, как мы уже говорили, в цифрах числа Пи можно ожидать появление любой наперед заданной последовательности цифр. Например, самые распространенные расстановки встретились в следующих по счету цифрах:

01234567891 : с 26,852,899,245
01234567891 : с 41,952,536,161
01234567891 : с 99,972,955,571
01234567891 : с 102,081,851,717
01234567891 : с 171,257,652,369
01234567890 : с 53,217,681,704
27182818284 : с 45,111,908,393 - это цифры числа е. (Была такая шутка: ученые нашли последнее число в записи Пи - им оказалось число е, почти попали)

Попробуйте поискать в первых десяти тысячах знаков Пи свой телефон или дату рождения, если не получится, то ищите в 100.000 знаков.

В числе 1/Пи начиная с  55,172,085,586 знака идут 3333333333333, не правда ли удивительно?

На http://www.mcs.surrey.ac.uk/Personal/R.Knott/Fibonacci/fibpi.html лежит статья о связи чисел Фибоначчи с числом Пи.

Страница http://www.algonet.se/~eliasb/pi/binpi.html посвящена представлению цифр числа Пи в двоичной форме. Там же можно найти невероятные картины, сформированные этими двоичными числами.

Напоследок хотелось бы напомнить, что 14 марта объявлено международным «Днем числа пи», так как в американской записи дата запишется как 3.14. Не забудьте поздравить знакомых, ведь этот праздник самый естественный, общечеловеческий и даже общегалактический, не связанный с религией или местными традициями отдельных стран. Если же вы его пропустили по рассеянности – не огорчайтесь, есть еще «День приближенного пи», естественно 22 июля, не забудьте провозгласить тост за клуб любителей пи


Автор about me
Design by dady_MYKC
)c( 2000-2017
Kопирайта нет, копируйте на здоровье :)

100012 лет в Интернете


.