2022-01-21 01:00:18 +05:30
|
|
|
---
|
|
|
|
id: 5900f4db1000cf542c50ffee
|
2022-01-22 20:38:20 +05:30
|
|
|
title: '問題 367: ボゾソート'
|
2022-01-21 01:00:18 +05:30
|
|
|
challengeType: 5
|
|
|
|
forumTopicId: 302028
|
|
|
|
dashedName: problem-367-bozo-sort
|
|
|
|
---
|
|
|
|
|
|
|
|
# --description--
|
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
ボゾソートと聞いて、やや効率の低いボゴソートと混同しないでください。ボゾソートは、入力数列がソートされているかをチェックし、ソートされていない場合は無作為に 2 つの要素を交換します。 最終的に数列がソートされるまで、これが繰り返されます。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
最初の 4 つの自然数が含まれるすべての順列を入力として考えた場合、交換回数の期待値は、$4!$ 個すべての入力数列で平均 $24.75$ になります。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
ソート済みの数列の場合、交換回数は 0 回です。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
この問題では、次のような変種のボゾソートについて考えます。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
数列がソートされていない場合は、無作為に 3 つの要素を選択し、これら 3 つの要素を無作為に入れ替えます。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
これら 3 つの要素の $3! = 6$ 個の順列はすべて等確率で現れます。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
ソート済みの数列の場合、交換回数は 0 回です。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
最初の 4 つの自然数が含まれるすべての順列を入力として考えた場合、交換回数の期待値は、$4!$ 個すべての入力数列で平均 $27.5$ になります。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
入力数列として、最初の 11 個の自然数の順列を考えます。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
$11!$ 個すべての入力数列で平均すると、このソートアルゴリズムによる交換回数の期待値はいくつですか? 最も近い整数に四捨五入して答えなさい。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
|
|
|
# --hints--
|
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
`bozoSort()` は `48271207` を返す必要があります。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
|
|
|
```js
|
|
|
|
assert.strictEqual(bozoSort(), 48271207);
|
|
|
|
```
|
|
|
|
|
|
|
|
# --seed--
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
```js
|
|
|
|
function bozoSort() {
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
bozoSort();
|
|
|
|
```
|
|
|
|
|
|
|
|
# --solutions--
|
|
|
|
|
|
|
|
```js
|
|
|
|
// solution required
|
|
|
|
```
|