ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

28.11.2009, 05:41
|
|
Участник форума
Регистрация: 10.10.2009
Сообщений: 133
Провел на форуме: 143706
Репутация:
-1
|
|
precision в php.ini не забудьте поменять )).
|
|
|

28.11.2009, 16:55
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Собственно возникла проблема с выбором оптимального алгоритма для получения числа Пи, скажем с точночтью до 10^100 знаков после запятой.
Цитаты с вики
Текущий рекорд — 1 241 100 000 000 десятичных знаков, установлен Канадой и его группой в 2002 году...
Вычисление было выполнено на суперкомпьютере Хитачи из 64 узлов с 1 терабайтом оперативной памяти, способном выполнять 2 триллиона операций в секунду.
ТС, а сколько, простите, у вас суперкомпьютеров в наличие, если вы замахиваетесь на такую точность?
|
|
|

28.11.2009, 18:24
|
|
Участник форума
Регистрация: 22.10.2007
Сообщений: 138
Провел на форуме: 2454040
Репутация:
177
|
|
на пэхе врядли точнее 7-8 символов получится
алгоритм взят из вики
PHP код:
<?php
$pi = 0;
for($i=0;$i<99999999999999999;$i=$i+4)
{
$pi = $pi + 1/($i+1)-1/($i+3);
echo $pi*4 ;
echo "\n" ;
}
?>
|
|
|

28.11.2009, 18:35
|
|
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме: 3578578
Репутация:
275
|
|
Что, классов для работы с большими числами не существует?
|
|
|

29.11.2009, 00:48
|
|
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
bcmath
|
|
|

29.11.2009, 20:59
|
|
Участник форума
Регистрация: 07.01.2008
Сообщений: 187
Провел на форуме: 2809557
Репутация:
126
|
|
Сообщение от krypt3r
Цитаты с вики
ТС, а сколько, простите, у вас суперкомпьютеров в наличие, если вы замахиваетесь на такую точность?
Один. Но изначально я ошибся в плане php, залез в этот раздел потому как он более живой, а в алгоритме поправтье если это не так, главное не язык на котором кодить, а сам алгоритм . Цель не брать "железом", а совершенствовать, (оптимизировать) сам алгоритм вычислений числа Pi. Зачем супержелезо если например взять нейронные сети или как вариант ботнет для распределенных вычислений, ну или ..... Вот собственно поэтому и создал тему так как надеюсь услышать советы в данном направлении с компетентных уст.
|
|
|

29.11.2009, 21:11
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
кмк, лучше комбинации C + Asm вы вряд ли найдете по скорости работы. PHP для таких расчетов не годится, имхо. Он не для этого создавался.
ЗЫ. Никто не мешает реализовать один и тот же алгоритм с фиксированным числом итераций на разных ЯП и сравнить
|
|
|

29.11.2009, 23:03
|
|
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
Провел на форуме: 2223440
Репутация:
648
|
|
Сообщение от krypt3r
кмк, лучше комбинации C + Asm вы вряд ли найдете по скорости работы. PHP для таких расчетов не годится, имхо. Он не для этого создавался.
ЗЫ. Никто не мешает реализовать один и тот же алгоритм с фиксированным числом итераций на разных ЯП и сравнить
Думаю, что для высоконагруженных математических расчётов больше подходит функциональное программирование.
Рекомендую Erlang - он очень хорош для распределённого программирования, и в нём нет ограничений на величину чисел.
|
|
|

01.12.2009, 01:06
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме: 6023777
Репутация:
2642
|
|
Код:
<?php
$r = 4;
$tochnost = 1000000;
function y($x) {
global $r;
return sqrt($r*$r-$x*$x);
}
for($i=-$r*$tochnost;$i<$r*$tochnost;$i++) {
$x1 = $i/$tochnost;
$y1 = y($x1);
$x2 = ($i+1)/$tochnost;
$y2 = y($x2);
$d += sqrt(pow(($x2-$x1),2)+pow(($y2-$y1),2));
}
echo 'pi = '.$d/$r;
?>
|
|
|

01.12.2009, 01:07
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Еще как вариант,длинные числа можно выводить постепенно.Тоесть - считать постепенно.Сначала считаем сотые,затем тысячные,и так до скольки хотите.Я бы делал наверное так,с глубиной вложения гдето на 15-20 знаковых отличий.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|