Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите решить задачу (http://forum.oszone.net/showthread.php?t=145905)

Urann 22-07-2009 20:54 1174962

Помогите решить задачу
 
Нужно написать программу, которая будет возводить в степень больше 20ой числа большего max_int, проблема состоит в том что, входящее число может быть разное а я не могу заранее создать массив подходящий для результата, знаю что это как-то делается в куче, но как не знаю подскажите пожалуйста!!!

lxa85 22-07-2009 22:08 1175012

Цитата:

Цитата Urann
а я не могу заранее создать массив подходящий для результата »

Сделай размер 150. Кто мешает?
Цитата:

Цитата Urann
знаю что это как-то делается в куче »

Длинная арифметика? (Интересно, есть асемблерная команда возведения в степень?)

Alan85 22-07-2009 22:34 1175037

http://alenacpp.blogspot.com/2007/03/blog-post_21.html - вот статейка по этому поводу

Urann 22-07-2009 23:04 1175062

lxa85,
Цитата:

Цитата lxa85
Длинная арифметика? »

Да оно самое.
Но сделать большой размер массива от проблемы не избавит, а может даже и новых прибавит в некоторых случаях, хотя это может я ещё чего-то недопонимаю.
А насчёт ассемблерной команды, я не знаю, мне нужно и хотелось бы на С++ написать, можете мне в этом помочь? если что могу маленькую заготовку для начала выложить!
Alan85, спасибо

lxa85 22-07-2009 23:22 1175084

Цитата:

Цитата Urann
можете мне в этом помочь? »

к сожаленью нет. Т.к. программирование сейчас шагнуло вперед, а т.к. оно не является ни моей работой, и очень слабым хобби, то я боюсь что я больше испорчу, нежели помогу.
2ое, отсутствие времени. Поэтому только так: общим направлением движения.

Urann 22-07-2009 23:44 1175105

Alan85, извините я не в правилах хорошего тона может быть, на форумах очень редко бываю не знаю что да как, вашу статью я прочитал, да эта девушка говорила про то что здесь описывал я :)
Но алгоритм построения этого числа это же лакомый кусочек, я уже придумал как буду решать эту задачу, мне нужно только неисчерпаемый источник памяти куда я буду записывать ответ :unsure:

pva 23-07-2009 07:10 1175246

Цитата:

Цитата Urann
Но алгоритм построения этого числа это же лакомый кусочек, я уже придумал как буду решать эту задачу, мне нужно только неисчерпаемый источник памяти куда я буду записывать ответ »

Террабайтный винт поможет. А вообще давай подсчитаем. Допустим максимальная степень - 128, максимальное число - 2^64, тогда понадобится количество байт log(2^64^128, 2^8) = 128*64/8 = 2^(3+7) = 1024 - в оперативке легко поместится.

Urann 23-07-2009 12:12 1175444

pva, я понимаю что в оперативке поместица :)
я вот только не знаю как мне в оперативку записывать данные, прямым вписанием данных по неизвестному адрессу может привести к удалению нужной информации или просто доступа к памяти не будет ну это понятно думаю не стоит объяснять, специально для таких вещей есть функции в языках программирования new или что то типа того но я не знаю как это делать ну не врубаюсь и сё тут :)
А под неисчерпаемым источником памяти я подразумеваю ту самую ОП, т.к. потому что если процессора хватит на то чтоб посчитать большие числа, то его может не хватить чтоб записать в память хотя что-то мне нутром подсказывает что тут вмешаются EMM386.exe и AIMEM.SYS но каким образом этого я тоже ещё пока не знаю :)

pva 23-07-2009 13:49 1175535

а... разве не линейная модель памяти? если делаешь на с++, то есть замечательный шаблон vector<>, который берёт все заботы с памятью на себя. В паскале - динамический массив

Urann 23-07-2009 22:36 1176025

Спасибо думаю что теперь мне стало всё понятно, как это делать!

Raskolbasnik 14-05-2013 11:14 2149800

Прошу помощи в решении задачи!!
Создать класс окружность, чтобы он был наследником класса точка. Наследовал его поля и методы.

deviance 14-05-2013 11:44 2149823

Raskolbasnik, http://www.cyberforum.ru/cpp-beginne...ead684256.html


Время: 11:44.

Время: 11:44.
© OSzone.net 2001-