розподіл Максвелла. Зверху дошка прикрита склом, під яким знаходяться розбіжні канали для металевих кульок. Потрапляючи в верхній канал, кулька повинен вибрати подальший напрямок: направо або наліво. Після цього кульку потрапляє в наступний канал і т.д. При достатній якості приладу ймовірності вибору кожного з напрямів рівні, а результуюча картина розподілу кульок по осередках добре узгоджується з імовірнісними розрахунками, відповідно до яких кількість кульок, які опинилися у відділеннях, пронумерованих числами 1,., т , повинні бути пропорційними (з деяким коефіцієнтом пропорційності, що залежить від загального числа кульок) числах з m-го рядка трикутника Паскаля. Крива, що огинає верхівки стовпців з кульок, повинна мати колоколообразную форму.
В
1.1 Структура методу рішення
Вихідними даними до даної задачі є кількість осередків k і кількість кульок N . Вихідні дані - графічна реалізація процесу падіння кульок і остаточна картинка, а також остаточний розподіл кульок по осередках. Дане завдання передбачає розбиття на підзадачі. У першу чергу, здійснюється введення даних (при запуску програми до подальшої зміни встановлюються "значення за замовчуванням"). Після цього проводиться розрахунок остаточного розподілу кульок по осередках. Потім слід графічна реалізація процесу падіння кульок (висновок остаточної картинки або анімація падіння залежно від вибору користувача). На екран виводиться остаточний розподіл у вигляді картинки і у вигляді масиву цілих чисел, що відповідають кількості кульок, які потрапили в кожну з комірок.
Розглянемо алгоритм обчислення остаточного розподілу кульок по осередках:
Припустимо, що задано початкова кількість осередків - k . З цього випливає, що кожна кулька повинен зробити k-1 поворот до тих пір, поки не досягне свого осередку. Сформуємо масив поворотів даного кульки. Кожен елемент буде відповідати одному повороту: - 1 - якщо кулька повертає ліворуч, і 1 - якщо кулька повертає праворуч. Потім порахуємо суму поворотів. Позначимо цю суму Sum. Для знаходження номера осередку, в яку потрапить кулька, скористаємося формулою:
В
де E [] - оператор виділення цілої частини. Формула справедлива як для парного, так і для непарного числа осередків. Для всіх кульок сформуємо масив з номерів осередків, в які потрапить кожен кульку. Після цього для кожного осередку знайдемо кількість кульок, що потрапили в неї і, таким чином, отримаємо остаточний розподіл кульок по осер...