Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
ВнизКак работать в Делфи с очень большими числами Найти похожие ветки
← →
voron (2004-10-23 00:05) [0]У меня возникла проблема, может кто-то и подскажет:
Как работать с очень большими целыми числами (порядка 200-300 цифр)?? (Int64 не подходит)
Более конкретно: например мне нужно возвести 3 в степень 345, а из результата взять mod 5!
← →
palva © (2004-10-23 00:12) [1]Использовать какую-нибудь библиотеку. Наверняка их много. Только брать 32-разрядную версию.
← →
GuAV © (2004-10-23 01:29) [2]voron (23.10.04 0:05)
возвести 3 в степень 345, а из результата взять mod 5
procedure TForm1.Button3Click(Sender: TObject);
var I, R: Integer;
begin
R:=1;
for I:=1 to 345 do
begin
R:=R*3;
R:=R mod 5;
end;
ShowMessageFmt("R = %d",[R]);
end;
:)
← →
Grundic © (2004-10-23 01:37) [3]
> GuAV
R:=R*3;
R:=R mod 5;
? :/
Я в таком состоянии в математике не силен. Можно пояснить?
Это не притенции - честно-честно. :) Просто интересно...
ЗЫ: прям рифма! (:
← →
Megabyte © (2004-10-23 01:39) [4]Я как-то факториал 100! считал, использовал массивы.
← →
GuAV © (2004-10-23 01:44) [5]Упс... я факториал не заметил во как:
procedure TForm1.Button3Click(Sender: TObject);
var I, R: Integer;
begin
R:=1;
for I:=1 to 345 do
begin
R:=R*3;
R:=R mod 5*4*3*2*1;
end;
ShowMessageFmt("R = %d",[R]);
end;
← →
GuAV © (2004-10-23 01:45) [6]Grundic © (23.10.04 1:37) [3]
Можно пояснить?
Можно сразу делать mod т.к. старшие разряды не влияют на младшие при умножении :)
← →
XProger © (2004-10-23 04:53) [7]Сложение, умножение и деление столбиком, как во втором классе.
Или забыл? ;)
Длинная арифметика называется...
← →
Defunct © (2004-10-23 05:17) [8]> GuAV © (23.10.04 01:44) [5]
LOL
Результат этой функции R=72 всегда, независимо от кол-ва итераций ;>
← →
Defunct © (2004-10-23 05:19) [9]> GuAV © (23.10.04 01:44) [5]
Полагаю имелось в виду:procedure TForm1.Button1Click(Sender: TObject);
var I, R: Integer;
begin
R:=1;
for I:=1 to 346 do
begin
R:=R*3;
R:= R mod (5*4*3*2*1);
end;
R := R mod 5;
ShowMessageFmt("R = %d",[R]);
end;
← →
GuAV © (2004-10-23 13:21) [10]Defunct © (23.10.04 5:19) [9]
Да, Вы правы.
← →
Vasya.ru (2004-10-23 13:26) [11]voron (23.10.04 0:05)
Поищи в интернете или библиотеке материалы по длинной арифметике - работа с большими числами через массивы - там не сложно, часа за 2 во всем разберешся
← →
TUser © (2004-10-23 13:33) [12]На алголисте полно материалов по этому делу, и на форуме там длинные числа - очень популярная тема
← →
voron (2004-10-23 13:40) [13]Большое спасибо за советы!!!
Все получилось!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.127 c