PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » OpenSource » Давайте выложил калькуляторы числа Пи у кого есть.


Давайте выложил калькуляторы числа Пи у кого есть.

Сообщений 1 страница 10 из 10

1

Поехали.

Код:
Procedure.d BBP(n)
  Protected k, sum.d = 0.0
  For k = 0 To n
    sum + (1.0 / Pow(16, k)) * (4.0 / (8 * k + 1) - 2.0 / (8 * k + 4) - 1.0 / (8 * k + 5) - 1.0 / (8 * k + 6))
  Next
  ProcedureReturn sum
EndProcedure



Debug #PI
Debug bbp(15)

0

2

Код:
Procedure.d Leibnic(Iter)
  For i = 0 To  iter-1
    pi.d+Pow(-1,i)/(2*i+1)
  Next
  ProcedureReturn pi*4
EndProcedure

Debug Leibnic(1000000)
Debug #PI

0

3

Слабо 100000 знаков посчитать?

0

4

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

0

5

по формуле Виета

Код:
Procedure.d VietaFormula(n.i)
  Define.d product = 1.0
  Define.d sqrt_term = 0.0
  Define.i i

  For i = 1 To n
    sqrt_term = Sqr(2 + sqrt_term)
    product = product * (sqrt_term / 2)
  Next i

  ProcedureReturn 2 / product
EndProcedure

Debug VietaFormula(1000)
Debug #PI

0

6

egons, 100000 не слабо, к чему усложнять если всё уже есть.
офф.

Код:
from mpmath import mp
import time

# Функция для вычисления и записи цифр числа π
def compute_and_save_pi(digits, filename):
    # Устанавливаем точность
    mp.dps = digits + 2  # +2 для учёта "3."

    # Начало вычислений
    print(f"Вычисление числа π с {digits} цифрами после запятой...")
    start_time = time.time()

    # Вычисляем число π
    pi_value = str(mp.pi)

    # Записываем результат в файл
    with open(filename, "w") as file:
        file.write(pi_value)

    # Время выполнения
    end_time = time.time()
    print(f"Вычисление завершено за {end_time - start_time:.2f} секунд.")
    print(f"Результат записан в файл: {filename}")

# Параметры
digits = 100000  # Количество цифр после запятой
filename = "pi_digits.txt"  # Имя файла для записи

# Выполняем вычисления и запись
compute_and_save_pi(digits, filename)

0

7

формула Валлиса

Код:
Procedure.d WallisPi(n.i)
  Define.d product = 1.0
  Define.i i

  For i = 1 To n
    product = product * (4 * Pow(i, 2)) / (4 * Pow(i, 2) - 1)
  Next i

  ProcedureReturn 2 * product
EndProcedure

Debug  WallisPi(1000000)
Debug #PI

0

8

Чудновский

Код:
Procedure.d Factorial(n.i)
  Define.d result = 1.0
  Define.i i
  For i = 1 To n
    result = result * i
  Next i
  ProcedureReturn result
EndProcedure

Procedure.d ChudnovskyPi(n.i)
  Define.d sum = 0.0
  Define.d term
  Define.i k

  For k = 0 To n
    term = Factorial(6 * k) * (13591409 + 545140134 * k)
    term = term / (Factorial(3 * k) * Pow(Factorial(k), 3) * Pow(640320, 3 * k + 1.5))
    If k % 2 = 1
      term = -term
    EndIf
    sum = sum + term
  Next k

  ProcedureReturn 1 / (12 * sum)
EndProcedure

Debug ChudnovskyPi(10)
Debug #PI

0

9

Код:
Procedure.d Factorial(n.i)
  Define.d result = 1.0
  Define.i i
  For i = 1 To n
    result = result * i
  Next i
  ProcedureReturn result
EndProcedure

Procedure.d RamanujanPi(n.i)
  Define.d sum = 0.0
  Define.d term
  Define.i k

  For k = 0 To n
    term = Factorial(4 * k) * (1103 + 26390 * k)
    term = term / (Pow(Factorial(k), 4) * Pow(396, 4 * k))
    sum = sum + term
  Next k

  ProcedureReturn 1 / ((2 * Sqr(2) / 9801 * sum))
EndProcedure

Debug RamanujanPi(10)
Debug #PI

Формула Рамануджана

0

10

Debug 4*ATan(1)

Алгоритм  Brent-Salamin был уже?

0


Вы здесь » PureBasic - форум » OpenSource » Давайте выложил калькуляторы числа Пи у кого есть.