Це завдання стосується написання коду, щоб точно обчислити ймовірність. Вихід повинен бути точною ймовірністю, записаною у вигляді дробу в найбільш скороченому вигляді. Тобто вона ніколи не повинна виводити, 4/8а навпаки 1/2.
Для деякого додатного цілого числа nрозглянемо рівномірно випадковий рядок довжиною 1s та -1s nі назвемо його А. Тепер приєднайтесь до Aсвого першого значення. Тобто A[1] = A[n+1]якщо індексація від 1. Aтепер має довжину n+1. Тепер також розглянемо другий випадковий рядок довжини n, перші nзначення якого становлять -1, 0 або 1 з вірогідністю 1/4,1 / 2, 1/4 кожне і назвемо його B.
Наприклад, розглянемо n=3. Можливі значення для Aі Bможуть бути A = [-1,1,1,-1]і B=[0,1,-1]. У цьому випадку два внутрішні продукти є 0і 2.
Тепер розглянемо внутрішній продукт A[1,...,n]і Bі внутрішній продукт A[2,...,n+1]і B.
Ваш код повинен виводити ймовірність того, що обидва внутрішні продукти дорівнюють нулю.
Бо n=1така ймовірність однозначно 1/2.
Я не заперечую, як nвказано в коді, але це повинно бути дуже простим і очевидним, як це змінити.
Мови та бібліотеки
Ви можете використовувати будь-яку мову та бібліотеки, які вам подобаються. Я хотів би запустити ваш код, тому, будь-ласка, додайте повне пояснення щодо запуску / компіляції вашого коду в Linux.
n=4зараховується до нуля, двох чи трьох байтів? Чи має бути вихід чи точно, a/b чи [a b], наприклад, буде дозволено?
n? В іншому випадку я думаю, що це не дозволено.
nбули б корисні. Також може допомогти явний приклад A, B та двох внутрішніх продуктів.