User Tag List

Показано с 1 по 10 из 331

Тема: Вычисление числа Пи на ассемблере

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Немного дополню. Ранееприведенный spigot для 6128 ставит рекорд по количеству цифр среди известных мне программ. Однако существуют могучие 8-битные ретромашинки, которые способны посчитать в разы больше цифр, но таких программ для них (пока?) не написали. Более того, можно посчитать больше цифр и на 6128, но скорость уменьшится.
    После версии для 6128 сообразил, как резко увеличить число цифр для 06Ц (без квазидиска или других расширений памяти) при сохранении возможности проверки всех цифр. 8192 цифры - рекорд для 8080 среди известных мне программ, хотя есть компы с 8080 у которых больше памяти и они в принципе могут превзойти. Эта версия еще и чуть быстрее, поэтому две предыдущие (57 и 59) удалил.
    Особенности отображения цифр - до трех экранов (по окончанию расчета переключаются кнопками '1'-'3'), причем на первом цифры занимают только правую половину. При расчете 8192 цифр в левую часть экрана залезает конец буфера, но потом эта половина очищается от "мусора".
    Привожу скриншоты только для 8192 цифр, в архиве бинарники (и исходник) для расчета всех вариантов.
    Нажмите на изображение для увеличения. 

Название:	pi8192v61_1.gif 
Просмотров:	216 
Размер:	3.9 Кб 
ID:	80366Нажмите на изображение для увеличения. 

Название:	pi8192v61_2.gif 
Просмотров:	229 
Размер:	6.7 Кб 
ID:	80367Нажмите на изображение для увеличения. 

Название:	pi8192v61_3.gif 
Просмотров:	226 
Размер:	6.2 Кб 
ID:	80368
    100 цифр - 2.78 секунды
    1000 цифр - 238.94 секунды = 3 минуты 58.94 секунды
    3000 цифр - 2134.18 секунды = 35 минут 34.18 секунды
    8192 цифры - 16947.38 секунды = 4 часа 42 минуты 27.38 секунды
    Впечатляющий результат! 10-летний распил затворного алгоритма привел к созданию чего-то почти шедеврального. Одноко слово "почти" совсем не лишнее. Автор похоже как всегда не смог избежать соблазна использовать сомнительные трюки, похожие на мелкое шулерство, в частности:
    1) трюк издевательства над пользователем путём показа ему мелкомелких цыфирок. Нормальные цифры замедлили бы расчет совершенно незначительно и особенно для большого числа знаков;
    2) использование какого-то ненастоящего алгоритма-затвора, в настоящем алгоритме Вагона-Рабиновича на цифру числа π должно выделяться ровно 7 байт;
    3) в отсутствие алгоритма на ЯВУ, в отличие, например, от @blackmirror, который выложил сначала свой супербыстрый алгоритм в общем виде.
    А тем временем британцы начали проект других затворов. Мачина они явно с этим догнать не смогут, а вот перегнать код для Вектора скорее должны.

    ДОПОЛНЕНИЕ. Поспешил с претензиями 2 и 3 - это похоже тот самый затвор, извиняюсь. Но такое большое количество цифр сбивает с толку. Респект Вам @ivagor, но цифирки можно и побольше.
    Последний раз редактировалось litwr; 15.06.2024 в 07:49.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Арифметические процедуры на ассемблере
    от spensor в разделе Программирование
    Ответов: 27
    Последнее: 13.05.2017, 20:56
  2. Мнемокоманды и числа.
    от ALKO в разделе Программирование
    Ответов: 0
    Последнее: 15.02.2014, 03:49
  3. try-catch на ассемблере z80
    от siril в разделе Программирование
    Ответов: 22
    Последнее: 30.10.2012, 21:17
  4. Определение числа сторон
    от mungo в разделе Внешние накопители
    Ответов: 1
    Последнее: 16.03.2012, 18:06

Метки этой темы

Ваши права

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