256!
256! (256 факториал) равен вот сколько:
256!__=___8_578_177_753_428_426_541_190
822_716_812_326_251_577_815_202_794_856
198_596_556_503_772_694_525_531_475_893
774_402_913_604_514_084_503_758_853_423
365_843_061_571_968_346_937_559_062_206
744_391_425_129_370_214_948_413_856_154
797_157_106_772_544_656_050_060_218_253
971_805_838_553_388_666_497_343_296_977
699_908_368_020_818_937_295_475_824_138
107_497_327_954_520_932_951_526_116_269
915_012_621_935_564_233_068_999_854_772
228_851_446_330_501_727_846_158_372_280
169_252_280_337_563_327_420_330_759_980
409_692_570_591_861_862_719_187_003_010
103_293_944_944_191_408_424_615_936_000
000_000_000_000_000_000_000_000_000_000
000_000_000_000_000_000_000_000_000_000
=END=
LEN(256!)_=_502
Всего 502 десятичных знака: из них 63 незначащие нули (порядок), а 439 знаков — само число (мантисса).
А вот простейшая программуля на Бейсике, которая родилась только что. При первом запуске нужно раскомментЫрить первых семь строчек. А перед вторым закомментЫрить обратно. Тогда программа начнёт читать из файла «TR1.TXT» текущее значение факториала и выплёвывать новое. Каждый последующий запуск двигает факториал на 1 дальше. А все промежуточные результаты копятся в файле «TR2.TXT» и дублируются на экране.
;-)
'Листинг программы вычисления факториала большого числа
'CLS
'CLOSE
'C$ = "10!=3628800"
'OPEN "TR1.TXT" FOR OUTPUT AS #1
'PRINT #1, C$
'CLOSE #1
'SYSTEM
OPEN "TR1.TXT" FOR INPUT AS #1
DO WHILE NOT EOF(1)
LINE INPUT #1, C$
IF LEN(C$) <> 0 THEN
k = INSTR(1, C$, "=")
IF k <> 0 THEN
A$ = MID$(C$, 1, k - 2)
i1% = VAL(A$)
B$ = MID$(C$, k + 1, LEN(C$) - k)
B$ = RTRIM$(LTRIM$(B$))
n1% = 0
l1% = LEN(B$)
DO WHILE l1% > 0 AND MID$(B$, l1%, 1) = "0"
n1% = n1% + 1
l1% = l1% - 1
LOOP
'PRINT A$
'PRINT i1%
'PRINT "*"; B$; "*"
'PRINT "000...0 = "; n1%
B$ = MID$(B$, 1, l1%)
'PRINT "*"; B$; "*"
'PRINT l1%
r1& = i1%
r1& = r1& + 1&
IF n1% > 0 THEN
D$ = STRING$(n1%, "0")
ELSE
D$ = ""
END IF
E$ = ""
r4& = 0&
DO WHILE l1% >= 6
r2& = VAL(RIGHT$(B$, 6))
B$ = MID$(B$, 1, l1% - 6)
l1% = l1% - 6
r3& = r1& * r2& + r4&
E$ = RTRIM$(LTRIM$(STR$(r3&)))
IF LEN(E$) > 6 THEN
r4& = VAL(MID$(E$, 1, LEN(E$) - 6))
E$ = RIGHT$(E$, 6)
ELSE
r4& = 0
END IF
D$ = E$ + D$
'PRINT r1&, r2&, r3&, r4&
'PRINT "B$ = *"; B$; "*"
'PRINT "D$ = *"; D$; "*"
LOOP
r2& = VAL(B$)
B$ = ""
l1% = 0
r3& = r1& * r2& + r4&
E$ = RTRIM$(LTRIM$(STR$(r3&)))
r4& = 0
D$ = E$ + D$
'PRINT r1&, r2&, r3&, r4&
'PRINT "B$ = *"; B$; "*"
'PRINT "D$ = *"; D$; "*"
END IF
END IF
LOOP
CLOSE #1
D$ = RTRIM$(LTRIM$(STR$(r1&))) + "!=" + D$
PRINT D$
OPEN "TR1.TXT" FOR OUTPUT AS #1
PRINT #1, D$
CLOSE #1
OPEN "TR2.TXT" FOR APPEND AS #1
PRINT #1, D$
CLOSE #1
SYSTEM
END
P.S.
В качестве награды тем, кто добрался до конца текста, расскажу анекдот:
Программист ночью писал программу. И так увлёкся, что продвинулся вперёд в невиданные ранее дали. Потом уснул…
Утром проснулся — ничего не помнит. Решил посмотреть, что же я там наваял? Глянул, а на принтере стопка распечатанных листов лежит. Ну надо же! Неужели я такую длинную программу написал? Эх, ма!
Стал разбираться, — может новый Виндоус вышел? Оказалось нет. Оказалось, что с усталости число копий завёл 999, вот распечаток и вышло … всю пачку бумаги извёл…
:-)
Слава богу, что я обхожусь без распечаток…
P.P.S.
«Утром проснулся — ничего не помнит. Решил посмотреть, что же я там наваял? Глянул, а… в программе ошибка…» Исправил. Теперь выдаёт верные значения. Проверяйте!
8:32:22 21.08.2013 7186B000
Свидетельство о публикации №213082100220
Тут ошибка вышла, Катя,
Признаюся, — маху дал.
Ну, как проверить? Лезть под платье? —
Вот ERROR и проморгал.
Но не зря я, парень-дока, —
Деловой (знать предки с гор).
И опять пошла морока
Про коварный тот ERROR…
по мотивам В.Высоцкого
.
Действительно, как проверить, что приведённый набор цифр является кандидатом в 256! А? Сосчитать вручную? — Нет, конечно. Простейшую проверку можно произвести при помощи признаков делимости чисел. Например, известно, что если число делится нацело на 3, то и сумма всех чисел этого числа тоже делится на 3.
Факториал же собирает в себе, как снежный ком, наворачивает — все числа. Значит, это число должно нацело делиться на все входящие в него сомножители. Если признаки делимости помните, то легко проверите.
.
P.S.
Я вообще подозреваю, что человечество прогуляло нулевой урок по математике. Вот там, в райском саду, когда Господь Бог пытался втолковать двум подросткам (Адаму и Еве) свою мудрость. А у них в одно ухо влетело, а в другое вылетело. Потому как открытие удовольствия от секса снесло им крышу. И стало им всё глубоко параллельно. Вся эта таблица умножения, все эти признаки делимости… О чём ты, Господи? Какое это имеет значение, когда вот она — Земля. Первозданная природа. Плодись и размножайся сколько хочешь. И безо всякой, заметь, математики!
Так вот и вышло…
Для нас вся последовательность чисел на числовой прямой равнозначна. И мы интуитивно предполагаем, что переход от одного числа к другому осуществляется при помощи минимального кванта счёта — единицы. На самом-то деле всё гораздо интереснее и хитрее устроено!
Числа делятся на простые и сложные. Как в химии вещества делятся на атомы и молекулы. И можно точно также составить периодическую таблицу как для химических элементов (которую составил в своё время Дмитрий Иванович) только для математических элементов. В ней будут стоять простые числа, которые делятся только на себя и 1.
Взять тот же факториал: понятно же, что умножение на все числа кратные 2 можно вынести за скобки, как сомножитель «2 в степени n». И так со всеми простыми числами.
Соображаете?
То-то и оно…
Мудman 21.08.2013 11:48 Заявить о нарушении
М. Вербицкий
Мудman 22.08.2013 07:25 Заявить о нарушении
Ричард Столмен
Из Дороги к Тихо, сборника статей о событиях, предшествовавших Лунной революции, опубликованного в Луна-Сити в 2096 году.
Для Дана Хeлберта дорога к Тихо началась в училище — когда Мелисса Ленц попросила одолжить ей его компьютер. Ее компьютер сломался, и если бы она не смогла найти другой, она завалила бы свою курсовую работу. Она не осмеливалась просить никого, кроме Дана.
Это поставило Дана перед дилеммой. Ему необходимо было помочь ей — но если бы он одолжил ей свой компьютер, она могла бы прочесть его книги. Даже если забыть тот факт, что ты мог попасть на много лет в тюрьму за то, что дал читать свои книги кому-то еще, уже сама идея поначалу приводила его в ужас. Его, как и всех, с начальной школы учили, что обмениваться книгами гадко и противно — так делают только пираты.
А шанс, что SPA — Служба охраны программного обеспечения — не сумеет поймать его, был невелик. На занятиях по программированию Дан узнал, что в каждой книге есть средство контроля авторских прав, которое докладывает в Лицензионный центр, когда ее читали, где и кто. (Они пользовались этими сведениями, чтобы отлавливать читающих пиратов, а также чтобы продавать данные о личных интересах магазинам.) Как только его компьютер подключили бы к сети, Лицензионный центр узнал бы об этом. Он как владелец компьютера получил бы самое строгое наказание — за то, что не побеспокоился предотвратить преступление.
Конечно, Мелисса не обязательно собиралась читать его книги. Возможно, компьютер был нужен ей только для того, чтобы написать курсовую. Но Дан знал, что ее семья небогата, и она едва могла оплатить обучение, не говоря уже о плате за чтение. Может быть, его книги были для нее последней возможностью получить образование. Он понимал ее положение; ему самому пришлось залезть в долги, чтобы оплатить все научные статьи, которые он читал. (Десять процентов этих денег переводилось ученым, которые писали эти статьи; поскольку Дан метил в ученые, он мог надеяться, что его собственные научные статьи, если на них будут часто ссылаться, принесут достаточно денег, чтобы вернуть долг.)
Впоследствии Дан узнал, что было время, когда любой мог зайти в библиотеку и почитать статьи в журналах и даже книги, и за это не приходилось платить. Существовали независимые ученые, которые читали тысячи страниц без государственных субсидий на библиотеки. Но в девяностых годах XX века как коммерческие, так и некоммерческие издания начали взимать плату за доступ. К 2047 году публичные библиотеки со свободным доступом к научной литературе стали смутным воспоминанием.
Конечно, были способы обойти SPA и Лицензионный центр. Они сами были незаконны. У Дана был сокурсник по программированию, Френк Мартуччи, который достал запрещенное средство отладки и применял его для обхода программы контроля авторских прав, когда читал книги. Но он рассказал об этом слишком многим знакомым, и один из них сдал его в SPA за вознаграждение (когда студент попал в глубокую долговую яму, его легко подбить на предательство). В 2047 году Френк сидел в тюрьме — не за пиратское чтение, а за то, что у него был отладчик.
Позднее Дан узнал, что было время, когда средства отладки могли быть у любого. Были даже свободные средства отладки, которые можно было получить на компакт-диске или по сети. Но обычные пользователи начали применять их для обхода средств контроля авторских прав, и в конце концов суд постановил, что это стало их основным применением в реальной практике. Это значило, что они незаконны; тех, кто разрабатывал отладчики, отправили в тюрьму.
Программисты, конечно, по-прежнему нуждались в средствах отладки, но в 2047 году поставщики отладчиков распространяли только нумерованные копии и только для официально лицензированных и связанных обязательствами программистов. Отладчик, которым Дан пользовался на занятиях по программированию, держали в специальном окружении, так что им можно было пользоваться только для учебных упражнений.
Можно было также обойти средства контроля авторских прав, установив измененное ядро системы. Дан со временем узнал о свободных ядрах, даже целых свободных операционных системах, которые существовали на рубеже веков. Но они были не только незаконны, как отладчики — их нельзя было установить, даже если они у тебя были, если ты не знал пароля администратора для своего компьютера. А его ты не узнал бы ни от ФБР, ни от службы поддержки Microsoft.
Дан пришел к заключению, что он просто не мог одолжить свой компьютер Мелиссе. Но он не мог отказать ей в помощи, потому что он любил ее. Каждый раз, когда он говорил с ней, он переполнялся восторгом. А раз она попросила о помощи именно его, это могло означать, что и она его любит.
Дан разрешил дилемму, сделав нечто еще более немыслимое: он одолжил ей компьютер и сказал ей свой пароль. Таким образом, если бы Мелисса стала читать его книги, Лицензионный центр подумал бы, что их читает он. Это тоже было преступлением, но SPA не узнал бы об этом автоматически. Они узнали бы, только если бы Мелисса донесла на него.
Конечно, если бы в училище когда-нибудь узнали, что он дал Мелиссе свой пароль, двери училища закрылись бы перед обоими, независимо от того, для чего она использовала пароль. По правилам училища любое вмешательство в их средства контроля пользования компьютерами студентов было основанием для дисциплинарных мер. Неважно, нанес ли ты какой-нибудь вред — нарушением было то, что ты затруднил администраторам проверку твоего поведения. Они считали это признаком того, что ты совершал какие-то другие запрещенные действия, и их не очень интересовало, какие именно.
Студентов обычно не исключали за это — во всяком случае, буквально за это. Вместо этого им закрывали доступ к вычислительным системам училища, а без этого было совершенно невозможно продолжать любые занятия.
Впоследствии Дан узнал, что такого рода правила появились в учебных заведениях в восьмидесятых годах XX века, когда студенты стали широко пользоваться компьютерами. До этого учебные заведения подходили к дисциплине студентов по-другому: они наказывали за то, что было вредно, а не за то, что просто вызывало подозрения.
Мелисса не донесла на Дана в SPA. Его решение помочь ей привело к тому, что они поженились, а также поставило перед ними вопрос о том, что им в детстве говорили о пиратстве. Супруги стали читать об истории авторского права, о Советском Союзе с его запретами на копирование и даже о первоначальной Конституции Соединенных Штатов. Они переехали на Луну, где они нашли других людей, которые тоже улетели туда, чтобы длинные руки SPA не могли их достать. Когда в 2062 году началось восстание в Тихо, всеобщее право прочесть быстро стало одной из его основных целей.
<1997>
Мудman 22.08.2013 07:26 Заявить о нарушении