Ну, я трохи розважився цим. Перше, про що я згадав, коли вперше прочитав проблему, це теорія груп (зокрема, симетрична група S n ). Цикл for просто будує перестановку σ в S n , складаючи транспозиції (тобто свопи) на кожній ітерації. Моя математика не така вражаюча, і я трохи іржавий, тож якщо мої позначення не відповідають.
Огляд
Нехай Aбуде подією того, що наш масив не змінився після перестановки. Ми в кінцевому рахунку , прошу знайти ймовірність події A, Pr(A).
Моє рішення намагається виконати наступну процедуру:
- Розглянемо всі можливі перестановки (тобто переупорядкування нашого масиву)
- Розбийте ці перестановки на непересечені набори на основі кількості так званих транспозицій ідентичності, які вони містять. Це допомагає зменшити проблему до рівномірного перестановок.
- Визначте ймовірність отримання перестановки тотожності, враховуючи, що перестановка є парною (і має певну довжину).
- Підсумуйте ці ймовірності, щоб отримати загальну ймовірність масиву незмінною.
1) Можливі результати
Зверніть увагу, що кожна ітерація циклу for створює обмін (або транспозицію ), що призводить до однієї з двох речей (але ніколи не обох):
- Два елементи поміняні місцями.
- Елемент міняється місцями між собою. Для наших цілей масив незмінний.
Ми позначаємо другий випадок. Давайте визначимо транспонування ідентичності наступним чином:
Транспозиції ідентичності виникає , коли число обміняно з самими собою. Тобто, коли n == m у наведеному вище циклі for.
Для будь-якого даного циклу перерахованого коду ми складаємо Nтранспозиції. У 0, 1, 2, ... , Nцьому "ланцюжку" можуть бути перенесення ідентичності.
Наприклад, розглянемо N = 3випадок:
Given our input [0, 1, 2].
Swap (0 1) and get [1, 0, 2].
Swap (1 1) and get [1, 0, 2]. ** Here is an identity **
Swap (2 2) and get [1, 0, 2]. ** And another **
Зверніть увагу, що існує непарна кількість неідентичних транспозицій (1), і масив змінено.
2) Розділення на основі кількості транспозицій ідентифікаційних даних
Нехай K_iбуде подією, коли iтранспозиції ідентичності з’являються у певній перестановці. Зверніть увагу, що це утворює вичерпний розділ усіх можливих результатів:
- Жодна перестановка не може мати дві різні величини транспозицій тотожності одночасно, і
- Всі можливі перестановки повинні мати між
0і Nпосвідченням транспозиції.
Таким чином, ми можемо застосувати закон повної ймовірності :
Тепер ми нарешті можемо скористатися розділом. Зверніть увагу, що коли кількість неідентичних транспозицій непарна, масив не може залишитися незмінним *. Отже:
* З теорії груп перестановка є парною або непарною, але ніколи не обома. Тому непарна перестановка не може бути перестановкою тотожності (оскільки перестановка тотожності є парною).
3) Визначення ймовірностей
Отже, ми повинні визначити дві ймовірності для N-iпарних:


Перший термін
Перший член,
представляє ймовірність отримання перестановки з iтранспозиціями ідентичності. Це виявляється двочленним, оскільки для кожної ітерації циклу for:
- Результат не залежить від результатів до нього, і
- Імовірність створення транспозиції ідентичності однакова, а саме
1/N.
Таким чином, для Nвипробувань ймовірність отримання iтранспозицій ідентичності становить:
Другий термін
Так що, якщо ви зробили це настільки далеко, ми звели задачу до знаходження
для N - iпарне. Це представляє ймовірність отримання заданої перестановки ідентичностіi того, що транспозиції є тотожностями. Я використовую наївний підхід підрахунку, щоб визначити кількість способів досягнення перестановки тотожності над кількістю можливих перестановок.
Спочатку розглянемо перестановки (n, m)та (m, n)еквівалент. Тоді нехай Mбуде можливою кількість неідентичних перестановок. Ми будемо використовувати цю кількість часто.
Мета тут - визначити кількість способів поєднання колекцій транспозицій для формування перестановки ідентичності. Я спробую побудувати загальне рішення поряд із прикладом N = 4.
Давайте розглянемо N = 4випадок з усіма транспозиціями ідентичності ( тобто i = N = 4 ). Нехай Xпредставляють транспонування ідентичності. Для кожного з них Xє свої Nможливості (вони:) n = m = 0, 1, 2, ... , N - 1. Таким чином, є N^i = 4^4можливості для перестановки ідентичності. Для повноти ми додамо біноміальний коефіцієнт, C(N, i)щоб розглянути порядок транспозицій тотожності (тут він просто дорівнює 1). Я намагався зобразити це нижче з фізичним розташуванням елементів зверху та кількістю можливостей нижче:
I = _X_ _X_ _X_ _X_
N * N * N * N * C(4, 4) => N^N * C(N, N) possibilities
Тепер явно не підмінюючи N = 4і i = 4, ми можемо розглянути загальний випадок. Поєднуючи вищезазначене із знайденим раніше знаменником, знаходимо:
Це інтуїтивно зрозуміло. Насправді, будь-яке інше значення, крім того, що, 1напевно, мало б вас насторожити. Подумайте: нам дана ситуація, в якій, Nяк кажуть, усі транспозиції є ідентичністю. Що, мабуть, не змінило масив у цій ситуації? Очевидно, що 1.
Тепер, знову ж таки N = 4, давайте розглянемо 2 транспозиції ідентичності ( тобто i = N - 2 = 2 ). Як домовленість, ми розмістимо дві ідентичності в кінці (і будемо замовляти їх пізніше). Зараз ми знаємо, що нам потрібно вибрати дві транспозиції, які при складанні стануть перестановкою ідентичності. Давайте розмістимо будь-який елемент у першому місці, назвемо його t1. Як зазначено вище, існують Mможливості, якщо припустити, що t1це не ідентичність (це не може бути, оскільки ми вже розмістили дві).
I = _t1_ ___ _X_ _X_
M * ? * N * N
Єдиним елементом, який міг би потрапити у друге місце, є зворотне значення t1, яке є насправді t1(і це єдине за унікальністю зворотного). Ми знову включаємо біноміальний коефіцієнт: у цьому випадку ми маємо 4 відкритих розташування, і ми хочемо розмістити 2 ідентифікаційні перестановки. Скільки способів ми можемо це зробити? 4 оберіть 2.
I = _t1_ _t1_ _X_ _X_
M * 1 * N * N * C(4, 2) => C(N, N-2) * M * N^(N-2) possibilities
Знову дивлячись на загальний випадок, це все відповідає:
Нарешті, ми робимо N = 4справу без жодної транспозиції ідентичності ( тобто i = N - 4 = 0 ). Оскільки можливостей дуже багато, це починає бути складним, і ми повинні бути обережними, щоб не подвоїти рахунок. Починаємо так само, розміщуючи один елемент у першому місці та розробляючи можливі комбінації. Спочатку візьміть найпростіший: те саме транспонування 4 рази.
I = _t1_ _t1_ _t1_ _t1_
M * 1 * 1 * 1 => M possibilities
Давайте тепер розглянемо два унікальних елементи t1і t2. Є Mможливості для t1і тільки M-1можливості для t2(оскільки t2не може бути рівним t1). Якщо ми вичерпаємо всі домовленості, ми залишимо такі схеми:
I = _t1_ _t1_ _t2_ _t2_
M * 1 * M-1 * 1 => M * (M - 1) possibilities (1)st
= _t1_ _t2_ _t1_ _t2_
M * M-1 * 1 * 1 => M * (M - 1) possibilities (2)nd
= _t1_ _t2_ _t2_ _t1_
M * M-1 * 1 * 1 => M * (M - 1) possibilities (3)rd
Тепер давайте розглянемо три унікальних елементів, t1, t2, t3. Давайте розмістимо t1спочатку, а потім t2. Як завжди, ми маємо:
I = _t1_ _t2_ ___ ___
M * ? * ? * ?
Ми поки не можемо сказати, скільки можливо t2 може бути ще, і ми побачимо, чому через хвилину.
Зараз ми займаємо t1третє місце. Зверніть увагу, t1треба їхати туди, оскільки якби ми йшли в останньому місці, ми б просто відтворили (3)rdугоду вище. Подвійний підрахунок - це погано! Це залишає третій унікальний елемент t3у кінцевій позиції.
I = _t1_ _t2_ _t1_ _t3_
M * ? * 1 * ?
То чому нам довелося взяти хвилину, щоб t2уважніше розглянути кількість s? Транспозиції t1та t2 не можуть бути несуміжними перестановками ( тобто вони повинні спільно використовувати одну (і лише одну, оскільки вони також не можуть бути рівними) своїх nабо m). Причиною цього є те, що якби вони були несумісними, ми могли б поміняти місцями перестановки. Це означає, що ми будемо двічі підраховувати (1)stдомовленості.
Say t1 = (n, m). t2повинен мати форму (n, x)або (y, m)для деяких xі yдля того, щоб бути несуміжними. Зверніть увагу , що xне може бути nабо mй yбагато з них НЕ буде nабо m. Таким чином, кількість можливих перестановок, які t2можуть бути, є насправді2 * (N - 2) .
Отже, повертаючись до нашого макету:
I = _t1_ _t2_ _t1_ _t3_
M * 2(N-2) * 1 * ?
Тепер t3має бути зворотне до складу t1 t2 t1. Давайте зробимо це вручну:
(n, m)(n, x)(n, m) = (m, x)
Так t3повинно бути (m, x). Зверніть увагу, що це не є несумісним t1і не дорівнює жодному, t1або t2тому для цього випадку немає подвійного підрахунку.
I = _t1_ _t2_ _t1_ _t3_
M * 2(N-2) * 1 * 1 => M * 2(N - 2) possibilities
Нарешті, поклавши все це разом:
4) Склавши все це разом
От і все. Працюйте назад, підставивши те, що ми знайшли, у вихідне підсумовування, подане на кроці 2. Я обчислив відповідь наN = 4 випадок нижче. Він дуже точно відповідає емпіричному числу, знайденому в іншій відповіді!
N = 4
М = 6 _________ _____________ _________
| Pr (K_i) | Pr (A | K_i) | Товар |
_________ | _________ | _____________ | _________ |
| | | | |
| i = 0 | 0,316 | 120/1296 | 0,029 |
| _________ | _________ | _____________ | _________ |
| | | | |
| i = 2 | 0,211 | 6/36 | 0,035 |
| _________ | _________ | _____________ | _________ |
| | | | |
| i = 4 | 0,004 | 1/1 | 0,004 |
| _________ | _________ | _____________ | _________ |
| | |
| Сума: | 0,068 |
| _____________ | _________ |
Правильність
Було б круто, якби тут був застосований результат теорії груп - і, можливо, він є! Це, безумовно, допомогло б повністю зникнути весь цей нудний підрахунок (і скоротити проблему до чогось набагато елегантнішого). Я перестав працювати в N = 4. Бо N > 5те, що наведено, лише наближує (наскільки добре, я не впевнений). Цілком зрозуміло, чому саме це, якщо задуматися: наприклад, з огляду на N = 8транспозиції, існують чітко способи створення ідентичності з чотирма унікальними елементами, які не враховані вище. Кількість способів стає, здається, складнішим для підрахунку, оскільки перестановка стає довшою (наскільки я можу зрозуміти ...).
У будь-якому випадку, я точно не міг зробити щось подібне в рамках інтерв’ю. Якби мені пощастило, я дійшов би до кроку знаменника. Крім цього, це здається досить неприємним.
Nта фіксованого насіння ймовірність є0або1тому, що це зовсім не випадково.