· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› Calc.exe: как он умудряется?

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Ноя 1, 2003 00:53:34

Калькулятор в Windows считает довольно большие числа.

Я возводил на нём число 10500 000 в 105000-ую степень, правда, считал он где-то ~1.5 секунды.
Как он это делает? Ведь FPU тоже не всесилен, есть ограничения.
Скажем, мне понятно, как посчитать 64-битное число, использую 32-битные регистры, но а что дальше? Ведь даже 21024 — это всего лишь 308 нулей, а как быть с тем числом, которому даже, наверное, и названия нет.


Дата: Ноя 1, 2003 01:23:52

Это в какой позиционной системе в 2^1024 308 нулей? :)


Дата: Ноя 1, 2003 01:45:26

На калькуляторе посчитал:
100000 = 1e+5;
2^1024 = 1,797693134862315907729305190789e+308.

Так что здесь явно не математическое e...


Дата: Ноя 1, 2003 01:51:32

е это exponant.
И я не вижу здесь 308 нулей.
И быть их тут не может.


Дата: Ноя 1, 2003 02:02:15

Подождите!
Я знаю e как основание натурального логарифма.
Но в калькуляторе это отображается, видимо, как експонента.

И я не вижу здесь 308 нулей.
Но, судя по примеру с 100 000?
2^32 = 4,294967296e+9;
2^64 = 1,8446744073709551616e+19;
2^128 ~ 3,4e+38;
2^512 ~ 1,3e+154;

Так почему в числе 2^1024 не 308 нулей?
Странно... Может быть, я заблуждяюсь?


Дата: Ноя 1, 2003 02:18:58

Ты может имеешь ввиду 308 десятичных разрядов а не нулей?
Вообще лучше говоря о математике быть точным где возможно,
это не так трудно.


Дата: Ноя 1, 2003 02:27:58

А, так это разряды в калькуляторе! А, правда, я забыл об этом, ведь число не округляется. Вот что значит в гуманитарном учиться!

Ну, хорошо, но как мне посчитать такие числа (как в первом сообщении)?

Ведь он считает, или дизассемблировать его, что ли?
Не подскажите?


Дата: Ноя 1, 2003 03:06:35

У Юрова спроси - он знает алгоритмы обработки больших чисел в своей второй книге.
А считает он именно в "научной" нотации т.е. числа с плавающей запятой, где число разрядов в числе вполне фиксировано, и позволяет отображать числа практически любой величины.


Дата: Ноя 1, 2003 03:30:16 · Поправил: IceStudent

Упс, отправлял, а нету!
Ошибся, есть!!!
ладно.

Ведь 10500 000 — это не шутки!

В своей второй книге
Что за книга? Практикум? Или что-то ещё?


Дата: Ноя 1, 2003 05:37:28

Ребята, вы меня удивляете. Берем Кнута. Второй том. И вдумчиво читаем раздел об арифметике одинарной точности (грубо говоря, регистры процессора), арифметике двойной точности (тип double или float - FPU) и арифметику бесконечной точности (FPU ВООБЩЕ не причем, дело определяется только оперативной памятью). И все. Посмотри на алгоритмы. Они изящны и их не трудно переписать на С/asm, или, скажем, позорный васик.
MAPLE, например, эти алгоритмы и использует. Ты видел какие она числа считать может?


Дата: Ноя 1, 2003 06:22:46

Берем Кнута.
Если б его ещё найти...
А так хотелось бы, конечно, почитать.

MAPLE
Это что такое? Где взглянуть на это чудо? Или это часть какого-нибудь *Cad'a?

volodya
Вы вроде как о Perl'е говорили, не подскажите о конвертации на нём?


Дата: Ноя 1, 2003 07:03:23

Если б его ещё найти...

В русской сети есть. Только линков здесь не будет. Я против принципиально. Вырождение. Итак пол-форума забито иконками в трее. Тьфу.

MAPLE - это математический пакет. Один из многих.

Вы вроде как о Perl'е говорили, не подскажите о конвертации на нём?

Я не очень тебя понял. Меня тоже надо на ты. Я пока еще не настолько плох ;) В перле есть два модуля - BigInt/BigFloat. По идее, должны входить в стандартную поставку ActivePerl. Если нет - можно докачать через PPM. Глянь их сорсы, только ей-богу, лучше Кнут.

Во! Вспомнил. nr.com - глава 20 - "Arithmetic at Arbitrary Precision" - читаем, читаем...


Дата: Ноя 1, 2003 07:12:38

Только линков здесь не будет
Не, я не напрашиваюсь. Я своими силами...

Я против принципиально.
И это правильно.

Итак пол-форума забито иконками в трее.
А это что значит?

MAPLE - это математический пакет.
Я так и думал. Просто я далёк от этого, ой, как далёк...

Я не очень тебя понял.
Загляни, пожалуйста, в ветку о Headers converters...

[i]BigInt/BigFloat

Я о другой конвертации :)


Дата: Ноя 4, 2003 15:37:00

IceStudent,
Не в обиду, начать надо с арифметики.
Ты видимо учился после 66года, она преподавалась с тех пор очень плохо.
Пока даже непонятно, что ты спрашиваешь.
Смутно можно догадаться что о работе с длинными числами,
но на такой вопрос не может быть однозначного ответа,
всё будет зависить от того какие операции ты с ними проводишь.
Например если тебе нужно сравнить их - одно,
если узнать (как ты сказал 308 нулей в 2^1024) сколько
десятичных разрядов и какая старшая цифра в старшем разряде - так это и в уме можно посчитать за 2е секунды.
Начни с арифметики. Найди старый учебник, до 1966 года.


Дата: Ноя 4, 2003 22:57:11

В своей второй книге
Что за книга? Практикум? Или что-то ещё?

он самый.

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.078