|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.06.2018, 23:40 | #1 |
Форумчанин
Регистрация: 17.09.2017
Сообщений: 265
|
Есть какой нибудь алгоритм сравнение больших чисел?
ввод
4 # сколько тех штук в низу 4 2 2 2 2 2 # первое число сколько чисел в этом ряде -1 3 3 3 3 3 2 2 3 4 5 9 9 9 9 9 9 как тут возводится в степень 2 2 3 4 сначала 3^4 = 81 потом 2^81 = 2417851639229258349412352 вопрос как можно сравнить эти числа если возвести их в степень и потом сравнить не возможно? (точнее возможно но какие нужны ресурсы?))) Код:
|
02.06.2018, 03:17 | #2 |
Форумчанин
Регистрация: 17.09.2017
Сообщений: 265
|
|
02.06.2018, 03:34 | #3 |
Форумчанин
Регистрация: 17.09.2017
Сообщений: 265
|
на англ форму обсуждают этот вопрос
https://math.stackexchange.com/quest...f-power-towers |
02.06.2018, 04:38 | #4 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
дополнить короткую строку слева нулями, а потом тупо сравнить как 2 строки, не?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
02.06.2018, 05:28 | #5 |
Форумчанин
Регистрация: 17.09.2017
Сообщений: 265
|
посмотрите как тут возводится в степень
Это пример одного ряда тут как бы я просто показал как возводится в степень тут только одно число 2 2 3 4 сначала 3^4 = 81 потом 2^81 = 2417851639229258349412352 не? 3 3 3 3 3 Вы представляете какая здесь будет строка? 3^7625597484987 это гигант просто))) если под каждую цифру отводить по 4 бита, для хранения такого числа нам понадобится всего лишь 1,8 терабайт. Ну и суперкомп чтобы вычеслить это. 5 9 9 9 9 9 9 это пример не один в пк не вычислит. а число 3^7625597484987 по сравнению с ним просто микроб. Последний раз редактировалось Александр121; 02.06.2018 в 05:38. |
04.06.2018, 11:54 | #6 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
если надо ТОЛЬКО сравнить
a>b <=> ln(a)>ln(b) 2 2 3 4 --> 4*ln(3)*ln(2) 5 9 9 9 9 9 9 --> 9*ln(9)*ln(9)*ln(9)...ln(9) P.S. вместо основания e можно использовать ЛЮБОЕ другое основание (например 3) хотя... ведь здесь РАЗНОЕ число ln. Надо еще вначале привести к одинаковому количеству "степеней". Добавить в "менее степенную" необходимое(до равенства числа элементов) единиц(1) 2 2 3 4 -->3 2 3 4 1 ->N 2 3 4 1 ... 1 --> 1*ln(1)...ln(1) *ln(4)*ln(3)*ln(2) а если теперь еще добавить по одной единице в КАЖДУЮ, то... {1 *} ln(1)...ln(1)*ln(4)*ln(3)*ln(2) ???? {1 *} ln(9)...ln(9)
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 04.06.2018 в 12:09. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение чисел. Есть ли разница по времени? | WildTaburet | Общие вопросы C/C++ | 4 | 21.09.2012 23:33 |
сравнение 1-ой буквы строкового элемента массива с какой нибудь любой буквой (lazarus) | arsenalfc | Помощь студентам | 7 | 22.05.2012 00:40 |
Есть ли в C++ какой-нибудь стандартный класс для работы с датой (не зависящий от среды разработки)? | RomanA | Общие вопросы C/C++ | 0 | 07.05.2012 11:18 |
В Билдере есть какой-нибудь компонент для многострочного вывода текста, аналогично Edit? | Наталия 555 | C++ Builder | 4 | 15.06.2011 13:12 |
алгоритм сравнения больших чисел со сдвигом | WOLFak | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 29.12.2008 22:36 |