Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

Тут есть хоть один толковый программист????   Найти похожие ветки 

 
Витёк   (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;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.084 c
4-1131365236
Sky
2005-11-07 15:07
2006.01.22
Приложение не дает выключить комп.


1-1134549868
neat
2005-12-14 11:44
2006.01.22
Включение/отключение компонента


14-1135896255
версия для печати
2005-12-30 01:44
2006.01.22
В бобруйск на зимние каникулы...


14-1135355802
TUser
2005-12-23 19:36
2006.01.22
Дешевые магазины


14-1135413928
Сафаров
2005-12-24 11:45
2006.01.22
рисунки на кнопки