Форум: "Потрепаться";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизТут есть хоть один толковый программист???? Найти похожие ветки
← →
Витёк (2005-12-27 23:01) [0]Как же вычислить этот задолбанный факториал большого числа!!!! Парюсь уже 2 недели и никто ответить не может!! Если есть нормальный программер, подскажи как же все таки вычислить факториал к примеру числа 100!!!
← →
Кефир87 © (2005-12-27 23:11) [1]У меня на 2ом курсе такое задание было... Но олимпиаде... 8)
← →
Piter © (2005-12-27 23:15) [2]Витёк (27.12.05 23:01)
Тут есть хоть один толковый программист????
ответный вопрос - а тут есть хоть один нормальный вопрошающий человек? ХОТЬ ОДИН, который прежде чем задать вопрос:
"Ая-яй-яй-люди-добрые-сами-мы-не-местные-дайте-пожалуйста-код-сделай-мне-готовое-все-очень-вас-прошу-ну-что-же-вы-такие- злые-наверное-никто-не-знает-а-понтуетесь-только"
Сначала САМ подумает хоть немного? Поищет в гугле и других поисковых машинах? В общем, приложит хоть чуть-чуть энергии для решения СВОЕГО вопроса?
← →
DiamondShark © (2005-12-27 23:19) [3]Не парься.
Попей пивка.
← →
Кручен-Верчен © (2005-12-27 23:19) [4]Длинная арифметика. Умножай столбиком, как в 1-ом классе. Заноси каждую цифру в отдельный элемент массива.
← →
Кручен-Верчен © (2005-12-27 23:21) [5]Удалено модератором
← →
Johnmen © (2005-12-27 23:21) [6]>Piter © (27.12.05 23:15) [2]
Таких вопрошающих здесь во второй половине декабря и во второй половине мая практически не бывает!
:)
← →
Johnmen © (2005-12-27 23:23) [7]>Витёк (27.12.05 23:01)
>Тут есть хоть один толковый программист????
Кстати, такое дешёвое "на слабо" здесь уже давно не проходит.
← →
Джо © (2005-12-27 23:26) [8]Да нету толковых, нету, не нужно кричать. Все толковые уже давно написали "факториал большого числа", получили свою нобелевку и отправились жить на Багамы :)
← →
LordOfRock © (2005-12-27 23:50) [9]Вроде отвечали уже тогда. Строки столбиком умножай. Если ты сам хоть немного "толковый программист", то сможешь сделать это.
← →
Piter © (2005-12-28 00:07) [10]Johnmen © (27.12.05 23:23) [7]
>Тут есть хоть один толковый программист????
Кстати, такое дешёвое "на слабо" здесь уже давно не проходит
Кстати, да :)))
Тоже хотел об этом напиисать - тут есть люди - ТА-А-А-АКОЕ придумывают, чтобы оправдать себя.
Понятно, что ленивые, да хоть с фантазией. А тут стандартное - упрекание, что сидят НЕдопрограммисты, уже не цепляет :)
← →
The_scorpion © (2005-12-28 00:49) [11]
> факториал к примеру числа 100!!!
Вот так: i:=1*2*3*4*5*6*7*8*9*10*11*12...{надеюсь закономерность ясна:)))}...91*92*93*94*95*96*97*98*99*100;
Чуть не забыл: i:double;
> У меня на 2ом курсе такое задание было... Но олимпиаде..
> . 8)
Это что за олимпиада такая? Халява...:)))
← →
McSimm © (2005-12-28 00:58) [12]
> The_scorpion © (28.12.05 00:49) [11]
не все просто, что кажется простым с первого взгляда.
:)
← →
sniknik © (2005-12-28 01:39) [13]вообще предложил бы "поправить" модуль BCD чисел, не все конечно только пяток основных нужных сдесь операций. увеличить размерность массива с 64 до 255 символов (для начала) авось хватит ;). а не хватит тогда немного более коренную переделку делать (в принципе там любая размерность числа возможна)
а саму функцию оставить "стандартной" (рекурсивной как в книжном примере по рекурсии)
... ну в общем и предложил ;о), сам это делать естественно не собираюсь.
← →
Думкин © (2005-12-28 05:45) [14]Кстати, одна из статей Кванта в конце 80-х так и была про - как посчитать факториал 100. И Бейсиком вполне справлялись и не Бейсиком - тоже.
← →
Карелин Артем © (2005-12-28 06:02) [15]2 минуты и готово
933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272 23758251185210916864000000000000000000000000
← →
Джо © (2005-12-28 06:09) [16]
> [14] Думкин © (28.12.05 05:45)
Да, было что-то такое. То ли для "Микроши", то ли для чего...
← →
Думкин © (2005-12-28 06:22) [17]> Джо © (28.12.05 06:09) [16]
Не помню. Я бы о Ямахе подумал(у нас Ямахи стояли), а кто-то Роботроны или Электронику или ДВК(так кажется?) вспомнил.. Хотя... тогда для школьников зоопарк большой был - и как правило, на всех Бейсик. При наличии желания этот факториал можно было бы и для МК-61 пробовать. И даже бумагу в клеточку, как и для многих задач не критичных во времени. :)
Я вот с помощью 20-разрядного бухгалтерского калькулятора(гроба потяжелее нынешнего компа) считал знаки Пи более 20 знаков.
Я вот понять не могу, неужели неинтересно такие задачки решать самому? Почему спрашивают? Именно они и дают ощущение кайфа.
← →
Джо © (2005-12-28 06:29) [18]
> [17] Думкин © (28.12.05 06:22)
Сессия-с, горю. Потому и спрашивают. Хотя мне тоже, в общем, непонятно. А особенно претензии спрашивающего. :(
Кстати, на эмкашке что-то я сомневаюсь, что вышло бы. Надо бы эмулятор нарыть, да попробовать, для мозгов зарядка изрядная.
← →
Думкин © (2005-12-28 06:38) [19]> Джо © (28.12.05 06:29) [18]
МК как помошник только - навскидку. То есть использовать для ускорения ряда ручных операций.
← →
Гарри Поттер © (2005-12-28 06:57) [20]Витёк (27.12.05 23:01)
Парюсь уже 2 недели и никто ответить не может!!
А может Вы в другом интернете посмотрите?(с)
← →
Ega23 © (2005-12-28 09:21) [21]PChar рулит
← →
Rouse_ © (2005-12-28 09:27) [22]Толковых тут куча, только они все ленивые :)
Ты им сделай чегонить и они тебя не забудут :)
← →
TUser © (2005-12-28 09:45) [23]Кстати, столбиком уиножать длинные числа - не самый оптимальный вариант.
← →
Витёк (2005-12-28 10:50) [24]А когда можно немного! Все советуют столбиком, а как? привидите пример!! Пожалуйста!
> факториал к примеру числа 100!!!
>Вот так: i:=1*2*3*4*5*6*7*8*9*10*11*12...{надеюсь закономерность >ясна>:)))}...91*92*93*94*95*96*97*98*99*100;
>Чуть не забыл: i:double;
А ты сам проверял как это работает?
← →
Курдль © (2005-12-28 11:09) [25]Тут есть хоть один толковый программист????
Да ты чё, прикалываешься? Глянь в соседнюю ветку "Программеры! У кого какое образование?" - одно лоховское инженерьё! 8-/
← →
DErad (2005-12-28 11:14) [26]Да точно, так че сдесь делаете?? Форум для программистов, а не для...
← →
Карелин Артем © (2005-12-28 11:14) [27]
> Витёк (28.12.05 10:50) [24]
> привидите пример!!
Для этого покурить кальян надо. Если ты не можешь понять что тебе в http://delphimaster.net/view/14-1135441129/, то лучше бросай нафик программирование.
← →
DErad (2005-12-28 11:18) [28]Карелин Артем, да видел я твои коды, благодарен, только вот бы покороче, можно же сделать проще!
← →
vrem (2005-12-28 11:21) [29]Формула Стирлинга - приближённое вычисление.
← →
The_scorpion © (2005-12-28 11:23) [30]
> McSimm © (28.12.05 00:58) [12]
Я много раз в олимпиадах участвовал, у меня глаз очень наметан...:))) это простая задача решается за 20-30 минут...
> А ты сам проверял как это работает?
Как часы...:)))...i:=1*2*3*4*5*6*7*8*9*10*11*12...{надеюсь закономерность >ясна>:)))}...91*92*93*94*95*96*97*98*99*100;
Это типа прикол был, мне не понравилось как ты задал вопрос.
Сжалюсь я над тобой...:)))
Представляй числа в стрингах, и умножай(складывай) в стрингах(забудь о других типах).Правда вот беда умножать(складывать) стринги нельзя, не предусмотрел Borland такую операцию. Но ты ведь программист. Сам создай алгоритм перемножения(сложения) стрингов.
← →
Kerk © (2005-12-28 11:24) [31]http://kladovka.net.ru/index.cgi?pid=list&rid=53
← →
The_scorpion © (2005-12-28 11:31) [32]
> DErad (28.12.05 11:18) [28]
> Карелин Артем, да видел я твои коды, благодарен, только
> вот бы покороче, можно же сделать проще!
Согласен с господином DErad: очень много лишних действий.
ИМХО: Нужно создать константные матрицы таблицы умножения(как в школе:))) ) и таблицы сложения. И все стане проще...
← →
Думкин © (2005-12-28 11:31) [33]> The_scorpion © (28.12.05 11:23) [30]
Можно развернуть тезис о других типах? Почему их надо забыть?
← →
DErad (2005-12-28 11:38) [34]The_scorpion, ну напиши как это сделать, немного кода, если тебе не сложно!
← →
The_scorpion © (2005-12-28 11:40) [35]
> Можно развернуть тезис о других типах? Почему их надо забыть?
В данной задачи толку от них мало...алгоритм станет на порядок сложнее(для его написание нужен уже как минимум час), а выигрыш в скорости будет минимальный
← →
Думкин © (2005-12-28 11:44) [36]> The_scorpion © (28.12.05 11:40) [35]
Спасибо за развернутый ответ. Вы говорили о ТП или все-таки о Дельфи? Чем вам те же динамические массивы не угодили? Например.
← →
Igorek © (2005-12-28 12:05) [37]> Думкин © (28.12.05 06:22) [17]
> При наличии желания этот факториал
> можно было бы и для МК-61 пробовать. И даже бумагу в клеточку,
> как и для многих задач не критичных во времени. :)
Кстати в детстве меня дядя заставлял умножать длинные числа на листике - одна операция на целый лист в клеточку.
← →
Карелин Артем © (2005-12-28 12:30) [38]
> DErad (28.12.05 11:18) [28]
> The_scorpion © (28.12.05 11:31) [32]
Коды не мои, скачал откуда-то когда понадобилось огромные числа перемножать. Моего там 1-2 строчки.
Ну лениво было самому велик делать.
← →
The_scorpion © (2005-12-28 12:42) [39]
> DErad (28.12.05 11:38) [34]
Лови:
var
Form1: TForm1;
const slog:array ["0".."9","0".."9"] of string[2]=
(("00","01","02","03","04","05","06","07","08","09"),
("01","02","03","04","05","06","07","08","09","10"),
("02","03","04","05","06","07","08","09","10","11"),
("03","04","05","06","07","08","09","10","11","12"),
("04","05","06","07","08","09","10","11","12","13"),
("05","06","07","08","09","10","11","12","13","14"),
("06","07","08","09","10","11","12","13","14","15"),
("07","08","09","10","11","12","13","14","15","16"),
("08","09","10","11","12","13","14","15","16","17"),
("09","10","11","12","13","14","15","16","17","18"));
var str,rez1,rez2,fin,per:string;
dlin,dlin2,i:word;
str1:string="42788349583890452";
str2:string="5341237123789123789539";
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if length(str1)>length(str2) then
begin
dlin:=length(str1);
str:=str2
end
else
begin
dlin:=length(str2);
str:=str1
end;
dlin2:=length(str);
for i:=1 to dlin-dlin2 do
str:="0"+str;
if length(str1)>length(str2) then
str2:=str
else
str1:=str;
for i:=1 to dlin do
fin:=fin+"0";
Per:="00";
for i:=dlin downto 1 do
begin
rez1:=slog[str1[i],str2[i]];
rez2:=slog[rez1[2],per[2]];
per:=slog[rez1[1],rez2[1]];
fin[i ]:=rez2[2];
end;
end;
end.
В fin хранится результат str1 и str2...это алгоритм сложение, у умножения все симметрично, сам подумаешь как переделать мой код, это очень легко.
← →
вразлет © (2005-12-28 12:47) [40]Витёк
А что платишь?
Страницы: 1 2 3 вся ветка
Форум: "Потрепаться";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.58 MB
Время: 0.049 c