Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Вычисление числа ПИ по итерационной формуле

Ответить
Настройки темы
VBS/WSH/JS - [решено] Вычисление числа ПИ по итерационной формуле

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png Снимо1к.PNG
(3.2 Kb, 19 просмотров)
В общем вот формула и код, вариант 9, вычисляет число ПИ он не правильно. Не могу понять что я не так делаю
Код: Выделить весь код
eps = 1+(1e-9) 
a = 2
s = 1
n = 0
t2 = Time
Do While Abs(a)>eps
a = ((4/8*n+1)-(2/8*n+4)-(1/8*n+5)-(1/8*n+6))*((1/16)^n)
s = s*a
n = n+1
Loop
t2 = Time-t2
MsgBox "Значение Pi = " & s*2 & vblf & "n= " & n & vblf & "Расчетное время= " & t2 & vbfl

Отправлено: 21:06, 27-05-2018

 
mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Цитата daniil_im:
a = ((4/8*n+1)-(2/8*n+4)-(1/8*n+5)-(1/8*n+6))*((1/16)^n) »
Должно ж быть однако
((4/(8*n+1))-(2/(8*n+4))-<и т.д.>)
т.е. знаменатели в скобках.

Да и члены ряда можно в скобки не брать:

(4/(8*n+1)-2/(8*n+4)-<и т.д.>)

-------
Mikhail Zhilin


Отправлено: 21:11, 27-05-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


И вычисление 8*n стоит вынести в отдельную переменную, всё хлеб. Равно как и 1/16.

Отправлено: 21:22, 27-05-2018 | #3


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, спасибо но проблема была в другом)
Код: Выделить весь код
eps = 1e-8 
a = 1 
s = 0 
n = 0
t2 = Time  
Do While Abs(a)>eps 
a = ((4/(8*n+1)) - (2/(8*n+4)) - (1/(8*n+5)) - (1/(8*n+6)))*(1/16)^n
s = s+a 
n = n+1 
Loop
t2 = Time-t2 
MsgBox "Значение Pi = " & s & vblf & "n= " & n & vblf & "Рассчетное время= " & t2 & vbfl

Отправлено: 22:13, 27-05-2018 | #4


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


daniil_im, Вместо Time используйте Timer, чтобы получить внятное время в секундах.
Iska,
Оптимизация кода дала всего-то 10% выигрыша по времени
Код: Выделить весь код
t2 = Timer  

For i=1 to 1000000  '-------------------------------

eps = 1.e-8
s = 0 
n = -7
n16=16

Do 
	n = n + 8
	n16 = n16 * 0.0625 
	a = (4/n - 2/(n+3) - 1/(n+4) - 1/(n+5))*n16
	s = s + a 
Loop While Abs(a)>eps

Next                '-------------------------------

t2 = Timer - t2
MsgBox "Значение Pi = " & s & vblf & "n= " & CStr((n-1)/8) & vblf & "Рассчетное время= " & t2 & vbfl
Цикл For вставил для того, чтобы получилось внятное значение времени для сравнения

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 28-05-2018 в 08:48.


Отправлено: 08:25, 28-05-2018 | #5


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Iska, Оптимизация кода дала всего-то 10% выигрыша по времени »
Одна старушка, конечно, гривенник, но из таких вот мелочей складывается общая эффективность.

Отправлено: 08:31, 28-05-2018 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Вычисление числа ПИ по итерационной формуле

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] число ПИ по итерационной формуле на VBScript daniil_im Скриптовые языки администрирования Windows 6 21-09-2017 00:57
C/C++ - Расчет по формуле Xaser_VI Программирование и базы данных 4 30-06-2016 12:53
2016 - [решено] Подскажите по формуле в EXCEL another_user Microsoft Office (Word, Excel, Outlook и т.д.) 8 12-12-2015 14:24
Любой язык - [решено] Подсчет неизвестных чисел по формуле Alexander_88 Скриптовые языки администрирования Windows 4 06-04-2015 16:04
подсчет траффика по ай-пи... Crazy Bird Сетевые технологии 12 28-03-2005 18:54




 
Переход