Sly32

Рейтинг
367
Регистрация
29.03.2012
Softg #:

Уже все давно скинуто 😁

Найс)) Что там с рублем - уже за 90 скаканул в обменниках?

.andrey. #:

Это рассчитать. А присвоить/вывести я показал на js в топике выше. Думаю, быстрее ни на питоне, ни на php не будет.

Наверное соглашусь. Переписал алгоритм с выводом в  stdout строки с числом Пи - генерация с точностью 20000 после запятой на моем core i7 10 Gen c 32 гигами оперативы заняла 48 секунд

from math import factorial
from decimal import *

def chudnovsky(n):
    pi = Decimal(0)
    k = 0
    while k < n:
        pi += (Decimal(-1)**k) * (Decimal(factorial(6 * k)) / ((factorial(k)**3) * (factorial(3*k))) * (13591409 + 545140134 * k) / (640320**(3 * k)))
        k += 1
        print("Шаг: {} из {}".format(k, n))
    pi = pi * Decimal(10005).sqrt() / 4270934400
    pi = pi**(-1)
    return pi


if __name__ == '__main__':
    start = time.time()
    N = 50000
    getcontext().prec = N
    val = chudnovsky(N / 14)
    print(val)

    print(f"Executino time = {time.time() - start}")

а 50000 - 600 секунд
Executino time = 629.3343698978424

Для справки 
с помощью формулы Чудновского два инженера Александр Йи и Сингеру Кондо в 2010 году объявили о новом мировом рекорде вычисления Пи на персональном компьютере: 5 трлн знаков после запятой. Компьютеру с 12 ядрами, 97 Гб памяти и 19 жесткими дисками потребовалось 60 дней для выполнения расчетов.

Had #:

Это не счастье. Это несчастье.

Я забыл добавить значок сарказма))) мне больше ноавиться 3-4 раза в год выбираться куда нить на не более чем неделю. 

Yandex-007 #:

Я когда в прошлом году поехал отдыхать на море, то мой распорядок дня был такой. Я не бегал. Просыпаюсь в 8 утра и лежу до 10 утра, потом иду на экскурсию в магнит - покупаю яблоко, персик и огурец, ем. Дальше лежу до 11 часов вечера, а потом спать. И так 30 дней.

Счастливый человек- отпуск 30 дней. С 90 го года не было такого))) хорошо если на недельку вырвешься)

Vladimir #:
Когда поймешь,приходи))

Не, сначала ты пойми, у меня есть ответ, но он тебе не понравится. А ты в упор его не видишь и притягиваешь за уши неважные в этом случае факторы. За логику - два, садись

Vladimir #:
Суть была в ответе товарищу, что мне без разницы где жить, работая удаленно

Только если у тебя доход от 10к зелени. А например жизнь на 5К евро в Польше и Германии порядком отличаться. 

Vladimir #:
де ты видел, чтобы здесь мигрантам бездельникам платили?

Почему бездельники?  Люди бегут из Африки, СирииБ Афганистана от голода и войны! Почему нищая замерзающая Европа может им платить пособие, а богатая процветающая россия нет? Непонятно.   

leoseo #:
Вот сколько в Европе стоит съездить куда-нибудь на дачу за город ? У нас 30 руб. билет на электричке туда, и 30 руб. обратно. За 30 руб. ты совершаешь поездку за 40 км. от города, сомневаюсь что в Европе подобные цены есть.

Это очень круто и я искренне рад за вас. У нас за 60 км самый дешевый билет если сегодня на сегодня - 14 злотых

Мне непонятно только одно - Почему на границе с Польшей ежедневно ловят по 100 -150 мигрантов? Они тупые что, не видят своего счастья? Почему бы не остаться в России или синеокой и кататься там по 30 рубликов? Чего ломятся то в Европу?  Все дешево, работы высокооплачиваемой навалом, чего не сидится?

alexx10 #:

Долго. И число PI в миллион знаков тоже будет создаваться долго. И подстрока тоже будет долго находиться. Но автор не ищет легких путей.

Используя алгоритм Чудновского на питоне - примерно 4,5 секунд. Не думаю что на пхп дольше

from decimal import Decimal
import time

def chudnovsky2(n):
    pi = Decimal(13591409)
    ak = Decimal(1)
    k = 1
    while k < n:
        ak *= -Decimal((6 * k - 5) * (2 * k - 1) * (6 * k - 1)) / Decimal(k * k * k * 26680 * 640320 * 640320)

        val = ak * (13591409 + 545140134 * k)

        d = Decimal((6 * k - 5) * (2 * k - 1) * (6 * k - 1)) / Decimal(k * k * k * 26680 * 640320 * 640320)

        pi += val
        k += 1
    pi = pi * Decimal(10005).sqrt() / 4270934400
    pi = pi ** (-1)
    return pi


if __name__ == '__main__':
    start = time.time()
    chudnovsky2(1000000)
    print(f"Executing time = {time.time() - start}")
==========================
Executing time = 4.425478935241699

Process finished with exit code 0
Год назад, когда курс доллра пошел резко вверх у нас, я пошел к своему РМу с вопросом о компенсации зп из-за курса. В беларуси она была привязана к доллару, тут в злотых. Он сказал, что  тут такого нет и если злотый опять поднимется, что, высчитывать с меня? Я про поднимется посмеялся. Правда ЗП мне все-таки подняли. А вчера курс злотого в обменниках был примерно такой как я приехал - 3.98))) Хорошо что купил машину в прошлом месяце на привезенные баксы и успел сдать их по боль-менее курсу
Всего: 7118