Category: юмор

Category was added automatically. Read all entries about "юмор".

with Cat The Cat

Мой любимый анекдот про дешевизну индийских ученых и программистов.

Один индийский ученый, имя которого я запамятовал, изобрёл замечательный способ улучшения соединений в кластерах. Вместо соединения в кольцо, где требуется всего 1 сетевой контроллер и logN контроллеров для гиперкуба, он предложил соединять машины в стиле распределенной хэш-таблицы. Вот, примерно, вот как здесь: http://www.freedomlayer.org/articles/dht_intro.html

Типа, делаем 2 контроллера и получаем ускорение передачи сообщений в два раза.

Идея похожа, детали отличаются.

Так вот, когда один мой знакомый обратился к нему с предложением побеседовать, сей индийский ученый потребовал (не попросил! потребовал!) $50 000 (пятьдесят тысяч долларов) только за возможность поужинать за предварительной беседой.

(прочитав последнее эссе Поля Грема)
with Cat The Cat

Количество цифр в факториале 100000.

fact1 n = product [1..n]

reduceProduct [] = []
reduceProduct [x] = [x]
reduceProduct (a:b:xs) = (a*b) : reduceProduct xs

product' [] = 1
product' [x] = x
product' xs = product' (reduceProduct xs)

fact2 n = product' [1..n]
Вот время вычисления для разных величин n:
*Main> length $ show $ fact1 10000
35660
(0.80 secs, 90772044 bytes)
*Main> length $ show $ fact2 10000
35660
(0.05 secs, 4062092 bytes)
*Main> length $ show $ fact1 30000
121288
(7.86 secs, 789229120 bytes)
*Main> length $ show $ fact2 30000
121288
(0.27 secs, 11794628 bytes)
Вот, в чём прикол:
*Main> map (map (length . show)) $ take 3 $ reverse
      $ takeWhile ((>2) . length) $ iterate reduceProduct [1..10000]
[[13020,15484,7157],[5895,7126,7591,7893,7157],
 [2640,3255,3488,3639,3751,3841,3915,3979,4035,3123]
]
Логарифмы перемножаемых на одной итерации reduceProduct чисел примерно равны, что позволяет использовать быстрое умножение.

Обнаружилось случайно. Коллега вывел на экран fact 100000 и сказал, что там очень много цифр. Нам стало интересно, сколько же их там, мы посчитали length $ show $ fact 100000. Мне стало неинтересно ждать долго (я прождал целых 15 секунд) и я переписал алгоритм произведения списка на приведённый выше. Мы тут же посчитали число цифр в fact 1000000. Потом стало интересно, почему же происходит такое ускорение. vshabanov посчитал и сказал, что число умножений будет всего вдвое меньше, мы пообсуждали, поизучали вопрос и пришли к выводу, что умножение больших чисел выгодней, когда они примерно равны по размеру. Что и получается в случае рекурсивного произведения.
with Cat The Cat

Анекдоты про Веллингтона.

http://antoin.livejournal.com/746365.html

«Скульптору сэру Джону Стиллу поручили сделать конную статую Веллингтона в Эдинбурге. В поисках вдохновения Стилл долго убеждал герцога вспомнить славные страницы пиренейской кампании и Ватерлоо.
В конце концов скульптор предложил вылепить герцога таким, как он появился в утро битвы при Саламанке, и «как галопом объезжал поле битвы, вдохновляя свои войска на подвиг».
— Если вы действительно хотите вылепить меня, каким я был при Саламанке, — фыркнул Веллингтон, — то вы должны показать меня ползающим в канаве на брюхе с подзорной трубой в руках!»