|
|
| Посл.отвђт | Сообщен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 В своей второй книге Что за книга? Практикум? Или что-то ещё? он самый. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.078 |