LINUX.ORG.RU

Вычислить число пи с точностью до 1000-го знака


0

2

Предлагаю холивар
В интернете полно реализаций на разных языках
Я чуть позже выложу свой на питоне, в нем всего каких-то 10 строк, решение выводится за минуту на обычном компе, Архимед наверно перевернулся бы в гробу
В основу моего решения положен далеко не самый быстрый алгоритм, описанный еще Антифонтом: сторона квадрата, вписанного в окружность с единичным радиусом, равна корню из двух. Если удвоить число сторон до 8, то сторона будет равна более сложному выражению: нужно вычесть корень квадратный из разницы между двойкой и все тем же корнем из двух. И т.д. для 16,32, 64 .... - угольников

★★★★★

Последнее исправление: kto_tama (всего исправлений: 2)

Ответ на: комментарий от Eddy_Em

Вот только физический смысл этой формулы совершенно непонятен.

разве формула обязана иметь физический смысл?

emulek
()
Ответ на: комментарий от Eddy_Em

А есть какой-нибудь алгоритм, не требующий использования библиотеки с длинными числами?

считай число как рациональную дробь. Даже с uint64_t неплохо получится.

Длинная арифметика будет нужна только в самом конце, для перевода дроби в десятичный вид.

emulek
()

Если бы ТС еще смог объяснить где может понадобиться точность более 10 знаков? Желательно в 10 строчках.

Zodd ★★★★★
()
Последнее исправление: Zodd (всего исправлений: 2)
Ответ на: комментарий от Zodd

Есть известная история про плакаты в кремниевой долине, гласящие: (первое шестизначное простое число в ряде цифр пи после запятой).com

На этом сайте можно было найти указания к следующей, более сложной загадки. А в конце этого ряда загадок приглашение на собеседование в Гугл 😊

anonymous
()
Ответ на: комментарий от Zodd

Если бы ТС еще смог объяснить где может понадобиться точность более 10 знаков? Желательно в 10 строчках.

JFF

PS: да, ещё фаллометрия конечно. Число знаков прямо говорит о прямизне рук и мощности компьютерного парка.

emulek
()
Последнее исправление: emulek (всего исправлений: 1)
Ответ на: комментарий от anonymous

arccos(x) в точке -1, например. Много что можно.

я в курсе, а что же лучше-то? arccos(x) довольно медленно сходится в чистом виде.

emulek
()
Ответ на: комментарий от anonymous

На этом сайте можно было найти указания к следующей, более сложной загадки.

кстати, мне лениво считать это твоё число, можешь в двух словах, что за «вторая загадка»?

PS: bc посчитал:

scale=1000
a(1)*4
3.141592653589793238462643383279502884197169399375105820974944592307\
81640628620899862803482534211706798214808651328230664709384460955058\
22317253594081284811174502841027019385211055596446229489549303819644\
28810975665933446128475648233786783165271201909145648566923460348610\
45432664821339360726024914127372458700660631558817488152092096282925\
40917153643678925903600113305305488204665213841469519415116094330572\
70365759591953092186117381932611793105118548074462379962749567351885\
75272489122793818301194912983367336244065664308602139494639522473719\
07021798609437027705392171762931767523846748184676694051320005681271\
45263560827785771342757789609173637178721468440901224953430146549585\
37105079227968925892354201995611212902196086403441815981362977477130\
99605187072113499999983729780499510597317328160963185950244594553469\
08302642522308253344685035261931188171010003137838752886587533208381\
42061717766914730359825349042875546873115956286388235378759375195778\
18577805321712268066130019278766111959092164201988

emulek
()
Ответ на: комментарий от anonymous

Дык, тот метод хардварный же!

// у кого-то я такие смайлики уже видел

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от emulek

Да это десятилетней давности история, я погуглил сейчас, и понял что все перепутал: не шестизначное а десятизначное, и не в пи, а в е. Число 7427466391, сайта того давно уже нет, а значит все остальные подробности надо в Гугле искать. Так что, сорри.

anonymous
()
Ответ на: комментарий от anonymous

действительно:

2.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274274663919320030599218174135966290435729003342952605956307381323286279434907632338298807531952510190115738341879307021540891499348841675092447614606680822648001684774118537423454424371075390777449920695517027618386062613313845830007520449338265602976067371132007093287091274437470472306969772093101416928368190255151086574637721112523897844250569536967707854499699679468644549059879316368892300987931277361782154249992295763514822082698951936680331825288693984964651058209392398294887933203625094431173012381970684161403970198376793206832823764648042953118023287825098194558153017567173613320698112509961818815930416903515988885193458072738667385894228792284998920868058257492796104841984443634632449684875602336248270419786232090021609902353043699418491463140934317381436405462531520961836908887070167683964243781405927145635490613031072085103837505101157477041718986106873969655212671546889570350354

PS: число e вычислить намного проще и быстрее, особенно с такой мизерной точностью. Экспонента растёт очень резко, и степенной ряд сходится очень хорошо, т.к. старшие степени делятся на факториал.

emulek
()
Последнее исправление: emulek (всего исправлений: 1)
Ответ на: комментарий от emulek

Самому интересно, что там были дальше за загадки.

anonymous
()
Ответ на: комментарий от anonymous

arctg(x) лучше. Там какое-то торжество есть про пи и арктангенс.

есть, но всё равно не очень быстро. Ну и считать приходится сразу 1000+100 цифр, а не одну за другой.

Была более удобная формула с цепными дробями, но я её забыл.

emulek
()
Ответ на: комментарий от emulek

Это был такой вид рекламы Гугл. Непонятно чьи щиты по всему шоссе только с одной задачей. Внимание СМИ и заинтересованных специалистов с достаточной для решения квалификацией, слухи в сети - скоро всем же стало известно кто щиты расставил и загадки загадал, имидж нестандартного как минимум и инновационного работодателя. В общем, заинтересовали много умных людей собой. Молодцы.

anonymous
()
Ответ на: комментарий от emulek

Многие из решивших наверное все таки не нуждались в смене работы, но студентота поняла - Гугл это интересно, раз они так интересно приглашают к себе на собеседование. Якобы их потом завалили резюме. И действительно, получился отличный способ привлечь внимание целевой аудитории.

anonymous
()
Ответ на: комментарий от anonymous

та это понятно, гугл никогда не скупился на PR.

emulek
()
Ответ на: комментарий от anonymous

echo 'scale=1000; 4*a(1)' | bc -l

Это неточный метод:

$ echo '4*a(1)' | bc -l
3.14159265358979323844
$ echo 'scale=22; 4*a(1)' | bc -l
3.1415926535897932384624
$ echo 'scale=24; 4*a(1)' | bc -l
3.141592653589793238462640

AS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.