Для таких чисел можно напрямую
var i:integer; f:real; begin f:=1; for i:=1 to 52 do f:=f*i; writeln(f>1e46) end.
А для много больших
var i:integer; f:real; begin f:=0; for i:=1 to 52 do f:=f+ln(i); writeln(f>ln(1e46)) end.
Другие языки программирования и технологии
Как сравнивать большие числа? Например что больше! 52 или 10^46
Валентин Святенко
только я так понимаю 10e46?
Олег Карпов
Нет. 10⁴⁶=1*10⁴⁶=1e46
Ты либо не выучил, как пишется факториал, либо совсем тупой.
Что ты там сравнить собрался,
В изложенном тобой примере-то? Двухзначное число с сорокасемизначным?
И правда, какое же больше?
Ну а если там все же факториал, то:
52! > 10^46
Просто сравнивай количество знаков, и радуйся.. Это ведь так сложно, да?
Если случится чудо и количество знаков будет одинаковым, то придётся применить сложнейшкю технологию сравнения цифр от 0 до 9 поочерёдно.
Опять же, можно просто сидеть и умножать все числа в факториале 52, не запоминая и не учитывая их, до того момента, пока твоё число не станет 47 значным.
Если не стало, а ты дошёл до конца, то твой факториал меньше 10 в 47 степени, если стало, а ты все ещё можешь продолжать умножать огромное число на остатки от факториала, то факториал больше..
Словом, сложностей нет, но нудно.
Для ЭВМ-дело пары секунд)
Что ты там сравнить собрался,
В изложенном тобой примере-то? Двухзначное число с сорокасемизначным?
И правда, какое же больше?
Ну а если там все же факториал, то:
52! > 10^46
Просто сравнивай количество знаков, и радуйся.. Это ведь так сложно, да?
Если случится чудо и количество знаков будет одинаковым, то придётся применить сложнейшкю технологию сравнения цифр от 0 до 9 поочерёдно.
Опять же, можно просто сидеть и умножать все числа в факториале 52, не запоминая и не учитывая их, до того момента, пока твоё число не станет 47 значным.
Если не стало, а ты дошёл до конца, то твой факториал меньше 10 в 47 степени, если стало, а ты все ещё можешь продолжать умножать огромное число на остатки от факториала, то факториал больше..
Словом, сложностей нет, но нудно.
Для ЭВМ-дело пары секунд)
Валентин Святенко
Пример взят из 2х разных тем. По факту 52! и 10^46 это количество возможных комбинаций, и на практике нужно будет сравнивать внутреннее дерево, на наличие совпадений и выдавать переменной название массивов, с которыми затем предстоит работать.
.
Выполняя операцию сравнения над большими числами.
Можно разбить числа на множители, удобные для счёта, сократить одинаковые и взаимно сокращаемые и получить уже два числа, по которым и можно определить, какое больше
Похожие вопросы
- Требуется калькулятор для очень больших чисел, очень больших. Есть такой?
- C++ long double большие числа при умножении искажаются
- Паскаль ДОЛГО считывает КОД с большими числами
- Delphi Как сложить два очень больших числа?
- Паскаль. Цикл While. Определить остаток от деления большего числа а на меньшее число b, не используя стандартные функции
- C почему у меня массив на 4 символа, а я ввожу 10 например, и он потом выводит 10 из этого массива, вот мой код:
- как сосчитать остаток от деления больших чисел??
- как посчитать 365! (С++) Нужен алгоритм вычисления факториала больших чисел.
- Вычисления с очень большими числами (+)
- добрый вечер, мне для привлечения большего числа клиентов в моей работе нужно создать свой сайт и продвигать его