25 / 8 / 2
Регистрация: 14.12.2009
Сообщений: 281
|
||||||
1 | ||||||
Как работать с большими числами, не вмещающиеся в тип double19.01.2012, 23:03. Показов 6350. Ответов 7
Метки нет (Все метки)
Доброго времени суток.
Нужно найти x. 6^x mod 89548831 = 35152307 я решил сделать обычным перебором. Но числа огромные, и когда x доходит до 396, число становится слишком большим, чтобы вместиться в переменную типа double. Как можно решить эту проблему? Числа простые, поэтому использовать кратные им не выйдет.
1
|
19.01.2012, 23:03 | |
Ответы с готовыми решениями:
7
Как работать с большими числами Как работать с большими числами? Как работать с очень большими числами? Как работать с большими числами (больше чем int64)? |
Неадекват
1492 / 1230 / 246
Регистрация: 02.04.2010
Сообщений: 2,789
|
||||||
20.01.2012, 00:26 | 2 | |||||
Задача точно решается не перебором
Но если очень хочется:
По приколу дошел до х=40000. Не оно. Может в алгоритме ошибся?
1
|
25 / 8 / 2
Регистрация: 14.12.2009
Сообщений: 281
|
|
20.01.2012, 01:09 [ТС] | 3 |
freeba, можешь объяснить как это работает, я чёто не догоняю. А пространство имён
using System.Numerics только в Framework 4 да? В алгоритме ошибки быть не должно.
0
|
Неадекват
1492 / 1230 / 246
Регистрация: 02.04.2010
Сообщений: 2,789
|
|
20.01.2012, 02:28 | 5 |
Это функция возведения в степень, неявно использующая двоичное представление (медленнее своих аналогов, но более понятная). Покури Кнута (только не увлекайся), помучай братца гугльберга. И снизойдет просветление на тебя.
Всю голову уже сломал над этой задачей. Спать пойду. Утро - вечера мудренее.
1
|
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
|
|
22.01.2012, 00:08 | 6 |
Создать свой числовой тип данных представляющих комплексные числа.
Экспоненциальная запись Проще это числа вида 5,e+35 состоящие из двух частей. Что нужно знать про арифметику с плавающей запятой
1
|
25 / 8 / 2
Регистрация: 14.12.2009
Сообщений: 281
|
|
22.01.2012, 00:43 [ТС] | 7 |
freeba, спустя 30 часов дошло до 245 000 но ответа пока не найдено. Перепроверил все данные, алгоритм. Ошибки быть не должно. Буду ждать.
ibmpc, спасибо, почитаю.
0
|
Неадекват
1492 / 1230 / 246
Регистрация: 02.04.2010
Сообщений: 2,789
|
||||||
22.01.2012, 01:34 | 8 | |||||
Сурово. 6^245000 приличное число. Скоро начнет кончаться оперативка. Должен быть более православный способ.
Добавлено через 17 минут Попробуй такой вариант. Только он основан на Double (если переписать на BigInteger возможно, подтвердиться ложность решения) и ответ содержит погрешность (полюбому). Но ответ - стольки значное число, что тут нужен не один год, для перебора влоб.
0
|
22.01.2012, 01:34 | |
22.01.2012, 01:34 | |
Помогаю со студенческими работами здесь
8
Как работать с числами типа long double Работа с большими числами (не влезающими в тип integer) Какой тип данных использовать для работы с большими числами? Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |