Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2018, 23:40   #1
Александр121
Форумчанин
 
Регистрация: 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

вопрос как можно сравнить эти числа если возвести их в степень и потом сравнить не возможно?
(точнее возможно но какие нужны ресурсы?)))


Код:
n = int(input())
    h = {}
    for i in range(n):
        args = list(map(int, input().split()))
        args.pop(0)
        c = 1
        for p in args[::-1]:
            c = p ** c
    h[i] = c
    print(*[x[0] + 1 for x in sorted(h.items(), key=lambda x: x[1])])
Александр121 вне форума Ответить с цитированием
Старый 02.06.2018, 03:17   #2
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

https://habr.com/post/265067/
https://ru.wikipedia.org/wiki/%D0%A2...86%D0%B8%D1%8F
https://habr.com/post/265067/
Александр121 вне форума Ответить с цитированием
Старый 02.06.2018, 03:34   #3
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

на англ форму обсуждают этот вопрос
https://math.stackexchange.com/quest...f-power-towers
Александр121 вне форума Ответить с цитированием
Старый 02.06.2018, 04:38   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

дополнить короткую строку слева нулями, а потом тупо сравнить как 2 строки, не?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 02.06.2018, 05:28   #5
Александр121
Форумчанин
 
Регистрация: 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.
Александр121 вне форума Ответить с цитированием
Старый 04.06.2018, 11:54   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

если надо ТОЛЬКО сравнить
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.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение чисел. Есть ли разница по времени? 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