3 / 3 / 0
Регистрация: 19.10.2009
Сообщений: 28
|
|
1 | |
Вычисление 2^n, где n<=1000024.10.2009, 16:26. Показов 7698. Ответов 18
Метки нет (Все метки)
Всем привет!
У меня такое задание: Написать програму на С которая вычистяет 2 в степени n, при чем n <=10 000 и n натеральное! Зарание спасибо!
0
|
24.10.2009, 16:26 | |
Ответы с готовыми решениями:
18
Random-ное уникальное значение от 1 до 10000, 10000 элементов В возрастающем порядке напечатать целые числа из диапазона 1.. 10000, представимые в виде n2 + m2, где n, m>0 Вычисление выражения D=A*B*C, где A=6, В=3, С=2 Где используется параллельное вычисление? |
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
|
|
24.10.2009, 16:32 | 2 |
тебе необходимо использовать длинную арифметику
заводишь массив char* на примерно 10 000 элементов и с помощь цикла считаешь, вычисление по времени выйдет около 1 сек без этого никак ибо самое большое число это 2 в 64 степени
1
|
3 / 3 / 0
Регистрация: 19.10.2009
Сообщений: 28
|
|
24.10.2009, 17:12 [ТС] | 3 |
я понимаю... но если можно ссылку с примером...
0
|
91 / 77 / 6
Регистрация: 08.10.2008
Сообщений: 296
|
|||||||||||
24.10.2009, 21:31 | 4 | ||||||||||
В си как таковой логической функции вычисления степени не существует, но можно использовать основное логарифмическое тождество:
a^n на си выглядит так
Добавлено через 1 час 58 минут
представь себе 2 в 10000 степени - такого числа даже long double не знает)
1
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
24.10.2009, 22:01 | 5 |
Ну, это проблема long double
Gae4ka_1,используй т.н. "длинную арифметику", и все получится! Например, http://gmplib.org/ Ну или любую другую реализацию. Возможно, эту самую реализацию тебе нужно написать самостоятельно; во всяком случае, имеющиеся в Инете исходники - хорошая отправная точка для самостоятельной работы. Чтобы было легче искать ошибки, вот конечный результат: 2 в степени 10000 = 19950631168807583848837421626835850838234968318861924548520089498529438830221946 63191996168403619459 78993311294232091242715564913494137811175937859320963239578557300467937945267652 46551266059895520550 08691819331154250860846061810468550907486608962488809048989483800925394163325785 06215683094739025569 12388065225096643874441046759871626985453222868538161694315775629640762836880760 73222853509164147618 39563814589694638994108409605362678210646214273333940365255656495306031426802349 69400335934316651459 29777327966577560617258203140799419817960737824568376228003730288548725190083446 45814546505579296014 14833921615734588139257095379769119277800826957735674444123062018757836325502728 32378927071037380286 63930314281332414016241956716905740614196543423246388012488561473052074319922596 11796250130992860241 70834080760593232016126849228849625584131284406153673895148711425631511108974551 42033138202029316409 57596464756010405845841566072044962867016515061920631004186422275908670900574606 41785695191145605506 82512504060075198422618980592371180544447880729063952425483392219827074044731623 76760846613033778706 03980341319713349365462270056316993745550824178097281098329131440357187752476850 98572769379264332215 99399876886660808368837838027643282775172273657572744784112294389733810861607423 25329197481312019760 41782819656974758981645312584341359598627841301281854062834766490886905210475808 82615823961985770122 40704433058307586903931960460340497315658320867210591330090375282341553974539439 77152574552905102123 10947321610753474825740775273986348298498340756937955646638621874569499279016572 10370136443313581721 43117913982229838458473344402709641828510050729277483645505786345011008529878123 89473928699540834346 15880704395911898581514577917714361969872813145948378320208147498217185801138907 12282509058268174362 20577475921417653715687725614904582904992461028630081535583308130101987675856234 34353895540917562340 08448875261626435686488335194637203772932400944562469232543504006780272738377553 76406726898636241037 49141096671855705075909810024678988017827192595338128242195402830275940844895501 46766683896979968862 41636313376393903373455801407636741877711055384225739499110186468219696581651485 13049422236994771476 30691554682176828762003627772577237813653316111968112807926694818872012986436607 68551639860534602297 87155751794738524636944692308789426594821700805112032236549628816903573912136833 83935917564187338505 10970271613915439590991598154654417336311656936031122249937969999226781732358023 11186264457529913575 81750081998392362846152498810889602322443621737716180863570154684840586223297928 53875623486556440536 96262201896357102881236156751254333830327002909766865056855715750551672751889919 41297113376901499161 81315171544007728650573189557450920330185304847113818315407324053319038462084036 42176370391155063978 90007428536721962809034779745333204683687958685802379522186291200807428195513179 48157624448298518461 50970488802727472157468813159475040973211508049819045580341682694978714131606321 06863915116817743047 92596709376 ( execution time : 0.218 s )
1
|
91 / 77 / 6
Регистрация: 08.10.2008
Сообщений: 296
|
|
24.10.2009, 22:08 | 6 |
интересно, с какой целью бывает нужно вычислить 2 в 10 000 степени я думаю обычному земному программисту это ни к чему, а обычной студентке так тем более
1
|
Путешественница
1250 / 478 / 11
Регистрация: 22.02.2009
Сообщений: 2,842
|
|
24.10.2009, 22:14 | 7 |
Ну да! Вот только тип Дабл - 8 метров памяти,тип Лонг - 4 метра памяти.... А Лонг Дабл?? сколько занимает памяти и какие хранит значения??? Что-то не найду....
1
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
24.10.2009, 22:18 | 8 |
Ошибаешься Обычному "земному программисту" операции с такими сумасшедшими числами все же бывают иногда нужны - это обыкновенная прикладная криптография; например, криптоключ длиной в 4096 бит - это, грубо говоря, 2 в степени 4096....
Добавлено через 2 минуты MotherBoard, про long double - например, http://en.wikipedia.org/wiki/Long_double
2
|
Путешественница
1250 / 478 / 11
Регистрация: 22.02.2009
Сообщений: 2,842
|
|
24.10.2009, 22:24 | 9 |
Было бы оно на русском языке! Я с инглишем хромаю....
Добавлено через 1 минуту Для таких крупных данных,где не требуется отрицательных чисел,можно пользоваться беззнаковым типом данных с удвоенной границей диапазона......
1
|
91 / 77 / 6
Регистрация: 08.10.2008
Сообщений: 296
|
|
24.10.2009, 22:27 | 10 |
1
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
24.10.2009, 22:58 | 11 |
1
|
91 / 77 / 6
Регистрация: 08.10.2008
Сообщений: 296
|
|
24.10.2009, 23:25 | 12 |
1
|
Путешественница
1250 / 478 / 11
Регистрация: 22.02.2009
Сообщений: 2,842
|
|
24.10.2009, 23:37 | 13 |
1
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
25.10.2009, 01:06 | 14 |
Вычисления подобных значений, а также 100000! и подобных длинных целых необходимо для общего развития студентов. Закрыли обсуждения данного вопроса
1
|
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
|
||||||
25.10.2009, 09:28 | 15 | |||||
Gae4ka_1, классы знаешь? про обсуждение - типичная олимпиадная задачка
Добавлено через 20 минут вот так выглядит сравнения двух до неприличия больших чисел [100 000].[100 000] если постаратся немножко, по этому примеру можно написать и возведение в степень
1
|
3 / 3 / 0
Регистрация: 19.10.2009
Сообщений: 28
|
||||||
25.10.2009, 16:43 [ТС] | 16 | |||||
Спасибо всем огромное!
Я написала код, вдруг он кому то тоже пригодится ....
1
|
3 / 3 / 0
Регистрация: 19.10.2009
Сообщений: 28
|
|
25.10.2009, 16:56 [ТС] | 18 |
0
|
25.10.2009, 17:01 | 19 |
Очень медленная операция, кстати. Советуется использовать умножение и вычитание (учитывая, что результат обычного деления уже известен) вместо модульного деления.
1
|
25.10.2009, 17:01 | |
25.10.2009, 17:01 | |
Помогаю со студенческими работами здесь
19
Вычисление последовательности 1-1/2+1/3-1/4+1/5-1/6 ….-1/n , где n<=1000000 Вычисление значения выражения: где ошибка? Вычисление НОД. не могу понять где ошибка. подскажите, где ошибка? вычисление арифметическое прогрессии Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |