beldmit: (Программизм)
[personal profile] beldmit
К этой записи.
Собрал под Debian Lenny отрекламированную Злобиным pure. Заодно и llvm 2.6, который в это пюре добавляют.

997 - 21 секунда против 18 минут на bc, которые у меня получились раньше.
998 - 6 с половиной минут против 511 минут.

Запустил-таки три девятки на ночь.
Стоит ли к времени вычисления добавлять время сборки пакетов - вопрос отдельный :-).

Upd: beldmit@manul2$ time pure tmp/999.pure > tmp/9_9_9_pure

real 103m37.719s
user 71m59.378s
sys 1m29.726s
beldmit@manul2$ ls -l tmp/9_9_9_pure
-rw-r--r-- 1 beldmit beldmit 369693102 Дек 18 01:27 tmp/9_9_9_pure

Upd: 10.08.2011, комп после апгрейда
beldmit@manul2$ time pure ./texts/999.pure > /home/beldmit/texts/9_9_9_pure

real 28m32.615s
user 27m55.473s
sys 0m16.929s

Date: 2009-12-18 11:07 am (UTC)
From: [identity profile] beldmit.livejournal.com
Мегабайтный :-)

Осталось понять, что с ним сделать.

У тебя Перельмана под рукой нет? Какие он там первые цифры указывал?

Date: 2009-12-18 11:52 am (UTC)
From: [identity profile] slobin.livejournal.com
Опечатка, блин, по Фрейду! ;-) Нет, ровно арифметики нет. Хотя есть алгебра, геометрия, механика, физика (2 тома) и астрономия. В алгебре про эту задачу один абзац и ссылка на арифметику за подробностями.

Но вообще проверять надо, да. До сих пор помню свои ощущения, когда СЛУЧАЙНО заметил, что число пи, посчитанное двумя разными программами, различается с две тысячи какого-то знака. Потом осознал, что в одной из них переполняется 16 бит, но сам факт, что мог и не заметить...

... Только нечётномерный ёж поддаётся причёсыванию ...

Date: 2011-09-27 08:25 pm (UTC)
From: [identity profile] slobin.livejournal.com
Два года спустя: а у тебя этого файла, случаем, не осталось? Можешь md5sum посчитать? А то я его тоже наконец-то посчитал и хочу сравнить. Длина и первые сколько-то цифр совпадают, но мало ли...

Детали: я таки сижу по-прежнему на винде, а в ней mpz (ну то есть всё тот же pure) не может отхватить достаточно большого для этой задачи куска памяти. Зато racket (бывшая plt scheme) собственно ответ во внутреннем (двоичном, видимо?) представлении посчитала за час с чем-то. Но не сумела напечатать. В итоге переводил в десятичную систему я руками, группами по миллиону цифр, и заняло это двое с чем-то суток. Но я ни в коем случае не утверждаю, что быстрее было нельзя -- в некоторый момент мне стало просто лень возиться, и я решил тупо подождать. Благо компьютер за эти два года стал заметно более другой, и аппаратный мультитаскинг (задача прочно заняла одно ядро из двух, а второе зато не заняла ;-) позволял на нём всё это время комфортно жить обычной жизнью.

... Стратегический светосброс ...

Date: 2011-09-27 08:32 pm (UTC)
From: [identity profile] beldmit.livejournal.com
Ты будешь смеяться. Остался. Я после апгрейда компа проводил сравнения прироста скорости. Завтра в джаббер стукнись.

Date: 2011-09-28 06:55 pm (UTC)
From: [identity profile] beldmit.livejournal.com
beldmit@manul2$ ls -l texts/9_9_9_pure
-rw-r--r-- 1 beldmit beldmit 369693102 Авг 9 23:17 texts/9_9_9_pure

beldmit@manul2$ md5sum texts/9_9_9_pure
3340ddcb021350d8f35f8589922a6994 texts/9_9_9_pure

Date: 2011-09-28 07:09 pm (UTC)
From: [identity profile] slobin.livejournal.com
Так... Судя по тому, что длина файла на два больше, чем длина ответа в цифрах, считаешь ты в линуксе и на pure, на конце должна быть буква "l" и \n без \r. Угадал? (проверяет) Блин, заглавная "L"! Со второго раза сошлось. ;-)

... Мечты и определения ...

Date: 2012-02-02 09:44 am (UTC)
From: [identity profile] slobin.livejournal.com
Продолжаем разговор. ;-) 12½ минут. Тот же pure (ну то есть не тот же, более свежей версии), та же винда, машина из предыдущего комментария. Более внимательное рассмотрение выяснило, что падает pure, как и racket, не на счёте, а на попытке вывести его в десятичном виде. Поделив ответ на глазок примерно пополам (по 180'000'000 десятичных цифр), получил указанное время. И даже несколько раз для надёжности (в отличие от часов, это уже не жалко ;-). Для наглядности код:

using system;
using math;

fmt n = "%0" + str n + "Zd";
const N = 180000000;

let p = pow 9 (pow 9 9);
let d = pow 10 N;
let a = p div d;
let b = p mod d;

let f = fopen "999.txt" "wt";

fprintf f (fmt 0) a;
fprintf f (fmt N) b;

... Мой город плакал, как гитара Ронки ...

Date: 2012-02-02 10:27 am (UTC)
From: [identity profile] beldmit.livejournal.com
То есть ты меня обогнал в два раза. Круто.

http://beldmit.dreamwidth.org/241717.html?nc=11#comments - туда я последний апдейт вносил.

Date: 2012-02-02 08:43 pm (UTC)
From: [identity profile] slobin.livejournal.com
То есть DW и LJ окончательно разъехались -- ни одну из двух копий этого поста нельзя считать "главной". Грустно. :-(

... Эллипсы нужны при нарезании колбасы кружочками ...

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 7th, 2026 12:16 pm
Powered by Dreamwidth Studios