Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.03 c
3-1132759401
AlexLines
2005-11-23 18:23
2006.01.22
RichView и win ME (98). Оператор Select и Pentium 3


2-1135758673
darvin
2005-12-28 11:31
2006.01.22
ДПФ пример программной реализации Delphi


1-1134734764
OlegNik
2005-12-16 15:06
2006.01.22
Завершение потока TTread;


4-1131709411
Альф
2005-11-11 14:43
2006.01.22
Определения свободного места на NTFS-диске


2-1135709166
The Only
2005-12-27 21:46
2006.01.22
CoCreateInstance





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский