Випадкові блукання

Постановка задачі: а) траєкторія

  • В початковий момент часу частинка сидить в точці x=0.
    Далі частинка робить N кроків на кожному з яких вона може з імовірністю 0.5 "стрибнути" ліворуч або праворуч.
    Як виглядає траєкторія x(N) частинки?

    (псевдо)Випадкові числа

  • Через Math.random()



       Запустіть програму кілька разів підряд...

  • Якщо випадкове число > 0.5 - то стрибаємо праворуч, а інакше - ліворуч

  • Функція Math.random() працює через клас java.util.Random
  • Підключення пакета:

  • import java.util.*;
    

  • побудова графіка QuickGraph або MagicPlot

    б) Як далеко піде частинка за N кроків?

    в) А якщо тепер усереднити квадрат довжини траєкторії при заданій кількості кроків?


    Запишемо у файл

    Зв'язок із "зовнішнім світом" (файлами, Інтернетом, ...)

  • "A stream can represent many different kinds of sources and destinations, including disk files, devices, other programs, and memory arrays." (потоки)

  • Уведення даних із зовнішнього світу:
       
    Постачання даних у зовнішньій світ:
       

    Ближче до реалізації

  • Підключення пакета:

  • import java.io.*;
    
  • Докладно про клас PrintWriter - символьний потік, про який варто знати

  • Програмка WhereAmI

  • Файли треба закривати!

  • Зверніть увагу:

  • Java не відкомпілює програму, де може виникнути "неконтрольована" помилка

        public static void main(String[] args) throws IOException  {
        // тіло програми    
        }
    
    " Все исключительные ситуации можно разделить на две категории: проверяемые (checked) и непроверяемые (unchecked).
    Ошибки, порожденные от Exception (и не являющиеся наследниками RuntimeException), являются проверяемыми. Т.е. во время компиляции проверяется, предусмотрена ли обработка возможных исключительных ситуаций. Как правило, это ошибки, связанные с окружением программы (сетевым, файловым вводом-выводом и др.), которые могут возникнуть вне зависимости от того, корректно написан код или нет. Например, открытие сетевого соединения или файла может привести к возникновению ошибки и компилятор требует от программиста предусмотреть некие действия для обработки возможных проблем. Таким образом повышается надежность программы, ее устойчивость при возможных сбоях. Можно и не писать обработчика, но тогда функция, вызывающая тех, кто может генерировать проверяемые исключения, должна быть объявлена со словом throws, "спихивая" все возможные ошибки на вызывающего ее. "

    Оригінал
  • Невеличка "хитрість": виведення у файл табличкою:
                out.println( i+"\t"+x );

    Складніше

    The Amazing Normal Distribution Function


    From Chaos to Order on the Galton Machine


    Probability Machine, Galton Board, Randomness and Fair Price Simulator, Quincunx



    Назад