Границы моего языка означают границы моего мира. 

 Л. Карнап, Л. Витгенштейн. Логическая семантика.  

                            

                                     

"Зачем вам это, батенька. Лучше б водки выпили...."
© Н. В. Гоголь

 

 

 

В начале семидесятых годов нашего двадцатого века американское космическое агентство NASA, получив от Конгресса США несколько миллиардов долларов, решило осуществить запуск исследовательского спутника на Юпитер. Спутник склепали, напичкали дорогостоящей аппаратурой, назвали "Пионер", и запустили вверх. Для успешного управления дальнейшим полетом увороченного агрегата, ежику понятно, необходимо было постоянно перерасчитывать его траекторию, корректируя ее от случайных возмущений и целя в Юпитер, который, между прочим, хоть и большой, но летает от нас на расстоянии более 100 миллионов километров, поэтому попасть в него ужасно трудно.

Знатоки знают, что для расчета подобных траекторий нужно решать систему дифференциальных уравнений, которую не то что решать, а даже и писать-то так называемым современным математикам не хочется, настолько она сложна и огромна. Но Пионер-то уже летит, как фанера над Парижем, а Конгресс внимательно следит за расходом средств налогоплательщиков, поэтому специалисты NASA вынуждены считать, эти чертовы многомерные интегралы, причем в режиме реального времени. "В режиме реального времени" – это означает, что интеграл надо успеть посчитать до того, как спутник улетит вместо Юпитера в деревню Пропадайлово или Лоходайлово.

Так называемые математики опять знают, что “единственный известный сегодня быстрый способ” вычисления таких интегралов с использованием ЭВМ — это метод Монте-Карло (а это такой город, в отличие от Бойля-Мариотта). Далее буду краток. Монте-Карлу нужно многократное случайное бросание точки в многомерную область. Электронная машина не умеет генерировать случайные числа, так как она работает по программе, написанной заранее на языке FORTRAN (помните, был такой). FORTRAN разработали специально для запуска пионеров и вставили в него датчик (от слова "давать") случайных чисел RND(n), который, работая по некоторой наспех созданной схеме, выдавал последовательность "квазислучайных" чисел из отрезка [0; 1], равномерно на нем распределенную. Все было здорово.

Беда началась тогда, когда эти "квазислучайные" числа начали объединять в пары, тройки, и т. д., чтобы получить координаты "случайной" точки многомерной области. RND(n) оказался составленным настолько неудачно, что 60% "случайных" точек из единичного квадрата на плоскости (всего-то двухмерная область !) попадали в его нижнюю половину (а это даже в боксе — неэтично)! Монте-Карло не сработал, спутник промазал мимо Юпитера всего на каких-то 20 миллионов километров, и несколько миллиардов долларов вылетели в трубу.

 

 

 

            

© Тимур Юнусов

e-mail: dll99@mail.ru


 

Используются технологии uCoz