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

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

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2011, 21:53   #1
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию Большие числа

Может кто-нить знает, как возвести любое число больше сотой(100) степени.Нашел несколько программ в нете ,где вычисляется степень,но там предел до 64, а дальше пишет 0. Скажите пожалуйста есть ли какой-нибудь алгоритм для этого? Или приведите пожалуйста пример своей программу ,если она есть.
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)

Последний раз редактировалось DRAgon™; 15.01.2011 в 21:55.
DRAgon™ вне форума Ответить с цитированием
Старый 16.01.2011, 18:53   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Используй сложение степеней. Например 2 в 16 это 4*4. то есть 2 в степени 2+2. Тебе не нужно перемножать двойку 4-ре раза, нужно найти 2*2, а полученное умножить на самого себя. Это получится в целом два умножения вместо четырех... В общем я бы поступал так . В общем-то понятно, что не из всех степеней можно взять корень, но опять же можно привести к виду степень из которой можно извлечь корень + остаток....
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 16.01.2011, 19:25   #3
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Используй сложение степеней. Например 2 в 16 это 4*4. то есть 2 в степени 2+2. Тебе не нужно перемножать двойку 4-ре раза, нужно найти 2*2,Это получится в целом два умножения вместо четырех... В общем я бы поступал так .
___________________________________ __________
Цитата:
а полученное умножить на самого себя.
Спасибо, но всеравно же вылезет это число когда его умножим на самого себя ,получается не влезет в тип(long),там надо как-то в компе закодить чтобы не вылезало за указанный тип(long), может надо использовать строки? ___________________________
Цитата:
В общем-то понятно, что не из всех степеней можно взять корень, но опять же можно привести к виду степень из которой можно извлечь корень + остаток....
И как потом возводить?Получается же дробное число,или просто отбросить дробную часть?
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 16.01.2011, 19:53   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Длинная арифметика рулит
_-Re@l-_ вне форума Ответить с цитированием
Старый 17.01.2011, 00:45   #5
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
Длинная арифметика рулит
Не, ну так я знаю ,что здесь надо использовать длинную арифметику,но не пойму как составить код чтобы представить большие числа.
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 17.01.2011, 07:11   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Я писал билиотеку для длинных чисел на Дельфи (только чтерые основных действия) . Если надо - набери в поиске по форуму Тест либы
Конкретизируй свой вопрос
Цитата:
не пойму как составить код чтобы представить большие числа
Что именно тебе не ясно? Начинать проектирование надо не с кода, а со структур данных. Код зависит от того, как ты хочешь представлять большие числа.

Цитата:
И как потом возводить?Получается же дробное число,или просто отбросить дробную часть?
Нету никакого дробного числа. Пример. Возвести число в степень 6 - разбей 6 на 4 и 2. Возвести в степень 101 - разбей степень на 100 и 1. Вроде все понятно (если читать и предыдущие посты более внимательно). Затем нужно 10 представить как 9 и 1. То есть возвести число в третью степень (помножением на самого себя), допустим число в третей степени будет Х. Тогда в 10-й будет Х*Х*на число, назовем этот результат У. Тогда в сотой будет У*У*на число. Итого 3 умножения на самого себя для получения Х, еще три умножения для получения У (6) и еще три умножения для получения 100-й степени. Того 9 умножений вместо 100...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 17.01.2011 в 07:24.
Utkin вне форума Ответить с цитированием
Старый 17.01.2011, 16:15   #7
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

Цитата:
Я писал билиотеку для длинных чисел на Дельфи (только чтерые основных действия) . Если надо - набери в поиске по форуму Тест либы Конкретизируй свой вопрос
А в каком это разделе в дэльфи?
Цитата:
Что именно тебе не ясно? Начинать проектирование надо не с кода, а со структур данных. Код зависит от того, как ты хочешь представлять большие числа.
Я наверное буду их представлять через строки.
Цитата:
Нету никакого дробного числа. Пример. Возвести число в степень 6 - разбей 6 на 4 и 2. Возвести в степень 101 - разбей степень на 100 и 1. Вроде все понятно (если читать и предыдущие посты более внимательно). Затем нужно 10 представить как 9 и 1. То есть возвести число в третью степень (помножением на самого себя), допустим число в третей степени будет Х. Тогда в 10-й будет Х*Х*на число, назовем этот результат У. Тогда в сотой будет У*У*на число. Итого 3 умножения на самого себя для получения Х, еще три умножения для получения У (6) и еще три умножения для получения 100-й степени. Того 9 умножений вместо 100...
Все,разобрался
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 17.01.2011, 16:19   #8
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

вот эта?
http://programmersforum.ru/showthrea...F7%E8%F1%EB%E0
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 18.01.2011, 07:37   #9
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Нет, эта: http://programmersforum.ru/showthrea...2+%EB%E8%E1%FB

Я же все написал, читай внимательней.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 18.01.2011, 20:58   #10
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Буду долбить
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
большие числа NiCola999 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 37 20.07.2011 16:26
Модульная арифметика. Большие числа Demonnight Помощь студентам 0 28.12.2010 00:30
csv-файл большие числа nevadimka Microsoft Office Excel 1 14.03.2008 10:25
Большие числа Лубышев Помощь студентам 6 27.02.2008 22:57
Большие комплексные числа xoz Общие вопросы Delphi 0 24.02.2008 03:12