Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 19 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
Нашёл следующую страничку Вычисление "ПИ" с помощью ряда Тейлора и у меня назрел вопрос...

Можно ли сварганить что-то подобное на языках Web-Программирования(например JavaScript, PHP, или Perl)

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 23.10.2003
Откуда: Иркутск/Майкоп
С какой точностью?
Нужно: массив целых чисел, циклы, ну и все, в принципе... Только работать будет медленно.

_________________
Края каждого совершенно нового крышка процессора не на 100% гладкая. Это связано с тем, что следов мастерства не избежать. (c) Али.


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
Цитата:
С какой точностью?

C любой возможной
Цитата:
Нужно: массив целых чисел, циклы, ну и все, в принципе

А в примере ? (Я просто не особо шарю в математике)

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Advanced member
Статус: Не в сети
Регистрация: 23.10.2003
Откуда: Иркутск/Майкоп
Ну, то что по ссылке написано - фигня, потому что таким способом больше 10-12 знаков не посчитать. Нужно использовать (хотя бы) формулу pi/4=4*arctg(1/5)-arctg(1/239).

arctg(1/5)=1/5-1/(3* 5^3)+1/(5* 5^5)-1/(7* 5^7) + ...
аналогично для 1/239.

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

Проще использовть внешнюю программу, она сохранит результат в текстовый файл. Может, я ошибаюсь, но на webовских языках будет даже медленнее, чем на VB.

Добавлено спустя 2 минуты, 19 секунд:
Хотя если так рассуждать, то проще этот файл взять готовым - в сети есть. :D

_________________
Края каждого совершенно нового крышка процессора не на 100% гладкая. Это связано с тем, что следов мастерства не избежать. (c) Али.


Последний раз редактировалось vor 09.10.2004 18:35, всего редактировалось 1 раз.

 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
Цитата:
Может, я ошибаюсь, но на webовских языках будет даже медленнее, чем на VB

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

Добавлено спустя 1 час, 47 минут, 39 секунд:
Во по простой формуле сделал что-то на подобии того что хотел, теперь буду разбираться дальше
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
   <title>Vladson</title>
</head>
<body>

<script type="text/javascript">
<!--
var mid=0;
function count(i) {
mid=mid+(1/i)-(1/(i+2));
i=i+4;
var fin=4*(1-mid);
document.all.pi.innerHTML = fin;
window.setTimeout("count("+i+");")
}
document.write('<p id="pi">&nbsp;</p>');
count(3);
//-->
</script>

</body>
</html>

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


Последний раз редактировалось Vladson 09.10.2004 18:49, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 04.06.2004
Откуда: Н. Новгород
я конечно не особо разбираюсь в веб-программировании, но все же, зачем нужен скрипт вычиляющий пи?

_________________
Интел имеет 80% рынка, АМД снабжает остальные 20


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
BOBAH083 в данном случае для красоты, (на большее меня пока не хватает) :D

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
Рядом тейлора считать пи - изврат. поищи другие методы - более эфективные

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Advanced member
Статус: Не в сети
Регистрация: 23.10.2003
Откуда: Иркутск/Майкоп
Цитата:
Рядом тейлора считать пи - изврат

Пару сотен лет так считали. Есть методы эффективнее, но они сложнее. В данном случае не идет речь о скорости счета. :)

_________________
Края каждого совершенно нового крышка процессора не на 100% гладкая. Это связано с тем, что следов мастерства не избежать. (c) Али.


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
Считаю не я, а компъютер, так что пусть по мучается...

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

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Advanced member
Статус: Не в сети
Регистрация: 23.10.2003
Откуда: Иркутск/Майкоп
Тут та же самая идея, но более эффективная формула:
http://program.rin.ru/razdel/html/711.html

Надо бы узнать, по какому методу считает Super Pi. Что-то с быстрыми преобразованиями Фурье... :oops:

Добавлено спустя 2 часа, 54 минуты, 16 секунд:
P.S. Оффтоп удален. формулы с арктангенсами выводятся с помощью школьных знаний, но довольно хитрым способом. Ну а формула Тейлора - святое!
Так что ничего сверхъестественного тут нет. :)

_________________
Края каждого совершенно нового крышка процессора не на 100% гладкая. Это связано с тем, что следов мастерства не избежать. (c) Али.


 

http://3.141592653589793238462643383279 ... 944592.jp/

зайди сюда......

20 Mbyte примерно.... текстовый файл...


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
Alexander Teplitsky Ты не совсем понял, мне не нужно его знать, мне нужно его вычислять

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
(подниму тему)

Кстати на Си можно посчитать 10-15 знаков по формуле которая используется в Super_PI
Код:
#include <stdio.h>
#include <math.h>

int main(void)
{
   int n;

   double a = 1;
   double b = 1/sqrt(2);
   double x = a;
   double y;
   double c = a/4;

   for (n=1; n<=3; n++)
   {
      y = a;
      a = (a+b)/2;
      b = sqrt(b*y);
      c = c-x*(a-y)*(a-y);
      x = 2*x;
   }

   printf("%1.16f\n", (a+b)*(a+b)/(4*c));
    system("pause");
   return 0;
}

Соответсвенно если использовать не <math.h> а что-то более "крутое" то можно и больше (на РНР для этого есть наборы функций например bcmath)

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Vladson на CodeProject видел неплохой класс для работы с сверх большими числами, оптимизированый с асм вставками.

_________________
Ку ку


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
На http://sourceforge.net/ есть что-то на подобии <math.h> но может работать с числами (точно не помню, но примерно) в несколько миллионов а возможно и больше...

Кстати я немного модифицировал свой скрипт (основа тоже примерно такая же) теперь он считает 2 числа Пи максимальное и минимальное (т.е там где цифры сровнялись, там уже точно Пи)
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>Test</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head><body>

<p>
   <span id="test1">&nbsp;</span><br><span id="test2">&nbsp;</span>
   (с) <a href="http://dkflbk.nm.ru/">Vladson</a>.
</p>

<script type="text/javascript"><!--
var curr = 0;
var temp = 1;
var res1 = 0;
var res2 = 0;
function count() {
   curr++;
   if ( curr % 2 ) {
      temp = temp * ( (curr+1)/curr );
      res1 = temp;
      document.getElementById('test1').innerHTML = ( res1 + res2 );
   } else {
      temp = temp * ( curr/(curr+1) );
      res2 = temp;
      document.getElementById('test2').innerHTML = ( res1 + res2 );
   }
   window.setTimeout("count()", 0);
}
count();
--></script>

</body></html>


И вот тут уже всё упёрлось в точность JS (давольно быстро считает, по этому рано или поздно доходит до "конца" и застревает)

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Member
Статус: Не в сети
Регистрация: 07.02.2004
Откуда: Свердловская...
Ещё вариант:
Код:
#include <stdio.h>
#include "conio.h"
main()
{
   float a, b, c;
   a=0;
   b=3;
   while (b <= 16384)
   {
      a += (1/b) - ( 1/(b+2) );
      b += 4;
   }
   c = 4 * ( 1 - a );
   printf("%1.17f\n", c);
   getch();
}

_________________
Если надпись на мониторе уменьшается, то ваш монитор уносят.


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
dimonpc2004 Тебе не кажется что этот вариант есть в соседней ветке ?
(достаточно было ссылку дать, хотя я сомневаюсь что Vladson не видел тот топик) :):D:lol:

Гы:
#77

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
Гы бенчмарк :)
Код:
#include <stdio.h>
#include <time.h>

int main() {
   double a=0;
   double b=3;
   double c;
   clock_t d  = clock();
   while(b<2147483647) {
      a+=(1/b)-(1/(b+2));
      b+=4;
   }
   c=4*(1-a);
   d = clock() - d;
   printf("The time was: %f\n", (double)d/CLK_TCK);
   printf ("Press Enter\n");
   getchar ();
   return 0;
}

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 19 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan