回答編集履歴
10
Step2
test
CHANGED
@@ -2,8 +2,9 @@
|
|
2
2
|
**Step1:** 1以上100以下の奇数を Fisher-Yates shuffle しておきます.
|
3
3
|
|
4
4
|
MATLABなら fy = randperm(100); のあと fyodd=fy(mod(fy,2)==1); など.
|
5
|
-
python なら import random から
|
5
|
+
また,python なら import random から
|
6
|
+
fyodd=list(range(1,101,2)) をして random.shuffle(fyodd) など.
|
6
|
-
random.shuffle(
|
7
|
+
random.shuffle() はfyoddの中身を直接書きかえてしまうのですね.
|
7
8
|
|
8
9
|
**Step2:** 同様に,1以上100以下の偶数を Fisher-Yates shuffle しておきます.
|
9
10
|
|
9
Step2 度重なる修正
test
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
**Step1:** 1以上100以下の奇数を Fisher-Yates shuffle しておきます.
|
3
3
|
|
4
4
|
MATLABなら fy = randperm(100); のあと fyodd=fy(mod(fy,2)==1); など.
|
5
|
-
python なら import random から fyodd=list(range(1,101,2)) をして
|
5
|
+
python なら import random から fyodd=list(range(1,101,2)) をして
|
6
|
-
random.shuffle() はfyoddの中身を直接書きかえてしまうのですね.
|
6
|
+
random.shuffle(fyodd) など.random.shuffle() はfyoddの中身を直接書きかえてしまうのですね.
|
7
7
|
|
8
8
|
**Step2:** 同様に,1以上100以下の偶数を Fisher-Yates shuffle しておきます.
|
9
9
|
|
8
Step2
test
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
### 題意をみたす列を全パターン出せそうな方法(途中,考察をダラダラと記述)
|
2
2
|
**Step1:** 1以上100以下の奇数を Fisher-Yates shuffle しておきます.
|
3
|
-
**Step2:** 1以上100以下の奇数を Fisher-Yates shuffle しておきます.
|
4
3
|
|
4
|
+
MATLABなら fy = randperm(100); のあと fyodd=fy(mod(fy,2)==1); など.
|
5
|
-
|
5
|
+
python なら import random から fyodd=list(range(1,101,2)) をして random.shuffle(fyodd) など.
|
6
|
+
random.shuffle() はfyoddの中身を直接書きかえてしまうのですね.
|
7
|
+
|
8
|
+
**Step2:** 同様に,1以上100以下の偶数を Fisher-Yates shuffle しておきます.
|
6
9
|
|
7
10
|
次に,偶奇の切り替わり回数は最多で99回,最少で33回です.
|
8
11
|
(切り替わりが最少となる例) 奇奇奇,偶偶偶, ... ,奇奇奇,偶偶偶,奇奇,偶偶(カンマが33個)
|
7
Step2の後を修正
test
CHANGED
@@ -2,8 +2,7 @@
|
|
2
2
|
**Step1:** 1以上100以下の奇数を Fisher-Yates shuffle しておきます.
|
3
3
|
**Step2:** 1以上100以下の奇数を Fisher-Yates shuffle しておきます.
|
4
4
|
|
5
|
-
MATLABなら randperm(100),
|
6
|
-
python なら import random からの random.shuffle(
|
5
|
+
MATLABなら randperm(),python なら import random からの random.shuffle() を使うでしょうか.
|
7
6
|
|
8
7
|
次に,偶奇の切り替わり回数は最多で99回,最少で33回です.
|
9
8
|
(切り替わりが最少となる例) 奇奇奇,偶偶偶, ... ,奇奇奇,偶偶偶,奇奇,偶偶(カンマが33個)
|
6
Step7,10の修正
test
CHANGED
@@ -26,13 +26,13 @@
|
|
26
26
|
|
27
27
|
**Step5:** 1以上49以下の数をmo個並べてできる列 {ro_1, ro_2, ... , ro_mo}を考えます.また,もしmoの値が0ならばStep8に移ります.
|
28
28
|
**Step6:** 次に「奇,奇, ... ,奇」という(かたまりサイズ1の奇数50個をカンマで区切った)並びを考えます.
|
29
|
-
**Step7:** i = 1, 2, ... ,mo に対して以下を行います:「もし,左から ro_i番目のカンマを取り除いても奇数が4つ以上連続しないならば
|
29
|
+
**Step7:** i = 1, 2, ... ,mo に対して以下を行います:「もし,Step6の時点で左から ro_i番目の位置にあったカンマを取り除いても,奇数が4つ以上連続しないならば,そのカンマを取り除く(これにより,取り除くカンマの左にあったかたまりのサイズが「取り除くカンマの両脇にあった2つのかたまりのサイズの和」となる)」
|
30
30
|
|
31
31
|
同様に,偶数のかたまりの個数を減らしていきます.
|
32
32
|
|
33
33
|
**Step8:** 1以上49以下の数をme個並べてできる列 {re_1, re_2, ... , re_me}を考えます.また,もしmeの値が0ならばStep11に移ります.
|
34
34
|
**Step9:** 次に「偶,偶, ... ,偶」という(かたまりサイズ1の偶数50個をカンマで区切った)並びを考えます.
|
35
|
-
**Step10:** i = 1, 2, ... ,me に対して以下を行います:「もし,左から re_i番目のカンマを取り除いても偶数が4つ以上連続しないならば
|
35
|
+
**Step10:** i = 1, 2, ... ,me に対して以下を行います:「もし,Step6の時点で左から re_i番目の位置にあったカンマを取り除いても,偶数が4つ以上連続しないならば,そのカンマを取り除く(これにより,取り除くカンマの左にあったかたまりのサイズが「取り除くカンマの両脇にあった2つのかたまりのサイズの和」となる)」
|
36
36
|
|
37
37
|
以上の操作によって生成された最大サイズ3の偶奇のかたまりを並べていきます.
|
38
38
|
|
5
Step5,8を修正.先の修正が誤り.
test
CHANGED
@@ -24,13 +24,13 @@
|
|
24
24
|
奇数のかたまりの個数を減らしていきます.
|
25
25
|
かたまりの個数を1つ減らすごとに,いずれか1つのかたまりのサイズが大きくなります(増えるサイズは後述).
|
26
26
|
|
27
|
-
**Step5:** 1以上
|
27
|
+
**Step5:** 1以上49以下の数をmo個並べてできる列 {ro_1, ro_2, ... , ro_mo}を考えます.また,もしmoの値が0ならばStep8に移ります.
|
28
28
|
**Step6:** 次に「奇,奇, ... ,奇」という(かたまりサイズ1の奇数50個をカンマで区切った)並びを考えます.
|
29
29
|
**Step7:** i = 1, 2, ... ,mo に対して以下を行います:「もし,左から ro_i番目のカンマを取り除いても奇数が4つ以上連続しないならば左から ro_i番目のカンマを取り除く(これにより,左から ro_i番目のかたまりのサイズが(旧ro_i番目のかたまりのサイズ)+(旧(ro_i+1)番目のかたまりのサイズ)となる)」
|
30
30
|
|
31
31
|
同様に,偶数のかたまりの個数を減らしていきます.
|
32
32
|
|
33
|
-
**Step8:** 1以上
|
33
|
+
**Step8:** 1以上49以下の数をme個並べてできる列 {re_1, re_2, ... , re_me}を考えます.また,もしmeの値が0ならばStep11に移ります.
|
34
34
|
**Step9:** 次に「偶,偶, ... ,偶」という(かたまりサイズ1の偶数50個をカンマで区切った)並びを考えます.
|
35
35
|
**Step10:** i = 1, 2, ... ,me に対して以下を行います:「もし,左から re_i番目のカンマを取り除いても偶数が4つ以上連続しないならば左から re_i番目のカンマを取り除く(これにより,左から re_i番目のかたまりのサイズが(旧re_i番目のかたまりのサイズ)+(旧(re_i+1)番目のかたまりのサイズ)となる)」
|
36
36
|
|
4
Step5,8の加筆,Step11の修正.
test
CHANGED
@@ -24,19 +24,22 @@
|
|
24
24
|
奇数のかたまりの個数を減らしていきます.
|
25
25
|
かたまりの個数を1つ減らすごとに,いずれか1つのかたまりのサイズが大きくなります(増えるサイズは後述).
|
26
26
|
|
27
|
-
**Step5:** 1以上33以下の奇数mo個からなる列 {ro_1, ro_2, ... , ro_mo}を考えます.
|
27
|
+
**Step5:** 1以上33以下の奇数mo個からなる列 {ro_1, ro_2, ... , ro_mo}を考えます.また,もしmoの値が0ならばStep8に移ります.
|
28
28
|
**Step6:** 次に「奇,奇, ... ,奇」という(かたまりサイズ1の奇数50個をカンマで区切った)並びを考えます.
|
29
29
|
**Step7:** i = 1, 2, ... ,mo に対して以下を行います:「もし,左から ro_i番目のカンマを取り除いても奇数が4つ以上連続しないならば左から ro_i番目のカンマを取り除く(これにより,左から ro_i番目のかたまりのサイズが(旧ro_i番目のかたまりのサイズ)+(旧(ro_i+1)番目のかたまりのサイズ)となる)」
|
30
30
|
|
31
31
|
同様に,偶数のかたまりの個数を減らしていきます.
|
32
32
|
|
33
|
-
**Step8:** 1以上33以下の偶数me個からなる列 {re_1, re_2, ... , re_me}を考えます.
|
33
|
+
**Step8:** 1以上33以下の偶数me個からなる列 {re_1, re_2, ... , re_me}を考えます.また,もしmeの値が0ならばStep11に移ります.
|
34
34
|
**Step9:** 次に「偶,偶, ... ,偶」という(かたまりサイズ1の偶数50個をカンマで区切った)並びを考えます.
|
35
|
-
**Step10:** i = 1, 2, ... ,me に対して以下を行います:「もし,左から re_i番目のカンマを取り除いても偶数が4つ以上連続しないならば左から re_i番目のカンマを取り除く(これにより,左から re_i番目のかたまりのサイズが(旧r
|
35
|
+
**Step10:** i = 1, 2, ... ,me に対して以下を行います:「もし,左から re_i番目のカンマを取り除いても偶数が4つ以上連続しないならば左から re_i番目のカンマを取り除く(これにより,左から re_i番目のかたまりのサイズが(旧re_i番目のかたまりのサイズ)+(旧(re_i+1)番目のかたまりのサイズ)となる)」
|
36
36
|
|
37
37
|
以上の操作によって生成された最大サイズ3の偶奇のかたまりを並べていきます.
|
38
38
|
|
39
|
-
**Step11:** もし mo-me=1 ならば,奇数のかたまりから開始して奇数のかたまり
|
39
|
+
**Step11:** もし mo-me=1 ならば,奇数のかたまりから開始して,以下{奇数/偶数}のかたまりを交互に置いていく.また,もし me-mo=1 ならば,偶数のかたまりから開始して{奇数/偶数}のかたまりを交互に置いていく.いずれにも該当しなければ,me=moなので,{奇数/偶数}どちらのかたまりから開始しても良いが,以下{奇数/偶数}のかたまりを交互に置いていく.
|
40
|
+
|
41
|
+
その結果,mo-me=1 の場合が奇数のかたまりで終わり,me-mo=1 の場合は偶数のかたまりで終わります.
|
42
|
+
また,me=mo で奇数のかたまりから開始した場合は偶数で,偶数のかたまりから開始した場合は奇数で,それぞれ終わります.
|
40
43
|
|
41
44
|
題意をみたす列は,必ずこの手法で表現し得るのではないかと思っています.
|
42
45
|
ただし,出方が一様かどうかの検証はしていません.
|
3
直しきれていなかった誤植を直します
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
**Step4:** mが偶数の場合,mo=me=m/2とします.また,mが奇数の場合,moとmeのうち片方を(m+1)/2,もう片方を(m-1)/2とします.
|
23
23
|
|
24
24
|
奇数のかたまりの個数を減らしていきます.
|
25
|
-
かたまりの個数を1つ減らすごとに,いずれか1つのかたまりのサイズが
|
25
|
+
かたまりの個数を1つ減らすごとに,いずれか1つのかたまりのサイズが大きくなります(増えるサイズは後述).
|
26
26
|
|
27
27
|
**Step5:** 1以上33以下の奇数mo個からなる列 {ro_1, ro_2, ... , ro_mo}を考えます.
|
28
28
|
**Step6:** 次に「奇,奇, ... ,奇」という(かたまりサイズ1の奇数50個をカンマで区切った)並びを考えます.
|
2
加筆した箇所に誤りがあり,さらに訂正します
test
CHANGED
@@ -26,13 +26,13 @@
|
|
26
26
|
|
27
27
|
**Step5:** 1以上33以下の奇数mo個からなる列 {ro_1, ro_2, ... , ro_mo}を考えます.
|
28
28
|
**Step6:** 次に「奇,奇, ... ,奇」という(かたまりサイズ1の奇数50個をカンマで区切った)並びを考えます.
|
29
|
-
**Step7:** i = 1, 2, ... ,mo に対して以下を行います:「もし,左から ro_i番目のカンマを取り除いても奇数が4つ以上連続しないならば左から ro_i番目のカンマを取り除く(これにより,左から ro_i番目のかたまりのサイズが1
|
29
|
+
**Step7:** i = 1, 2, ... ,mo に対して以下を行います:「もし,左から ro_i番目のカンマを取り除いても奇数が4つ以上連続しないならば左から ro_i番目のカンマを取り除く(これにより,左から ro_i番目のかたまりのサイズが(旧ro_i番目のかたまりのサイズ)+(旧(ro_i+1)番目のかたまりのサイズ)となる)」
|
30
30
|
|
31
31
|
同様に,偶数のかたまりの個数を減らしていきます.
|
32
32
|
|
33
33
|
**Step8:** 1以上33以下の偶数me個からなる列 {re_1, re_2, ... , re_me}を考えます.
|
34
34
|
**Step9:** 次に「偶,偶, ... ,偶」という(かたまりサイズ1の偶数50個をカンマで区切った)並びを考えます.
|
35
|
-
**Step10:** i = 1, 2, ... ,me に対して以下を行います:「もし,左から re_i番目のカンマを取り除いても偶数が4つ以上連続しないならば左から re_i番目のカンマを取り除く(これにより,左から re_i番目のかたまりのサイズが1
|
35
|
+
**Step10:** i = 1, 2, ... ,me に対して以下を行います:「もし,左から re_i番目のカンマを取り除いても偶数が4つ以上連続しないならば左から re_i番目のカンマを取り除く(これにより,左から re_i番目のかたまりのサイズが(旧ro_i番目のかたまりのサイズ)+(旧(ro_i+1)番目のかたまりのサイズ)となる)」
|
36
36
|
|
37
37
|
以上の操作によって生成された最大サイズ3の偶奇のかたまりを並べていきます.
|
38
38
|
|
1
誤植があり修正しました.
test
CHANGED
@@ -24,15 +24,15 @@
|
|
24
24
|
奇数のかたまりの個数を減らしていきます.
|
25
25
|
かたまりの個数を1つ減らすごとに,いずれか1つのかたまりのサイズが1大きくなります.
|
26
26
|
|
27
|
-
**Step5:** 1以上
|
27
|
+
**Step5:** 1以上33以下の奇数mo個からなる列 {ro_1, ro_2, ... , ro_mo}を考えます.
|
28
28
|
**Step6:** 次に「奇,奇, ... ,奇」という(かたまりサイズ1の奇数50個をカンマで区切った)並びを考えます.
|
29
|
-
**Step7:** i = 1, 2, ... ,mo に対して以下を行います:「もし,左から ro_i番目のカンマを取り除いても奇数が4つ以上連続しないならば左から ro_i番目のカンマを取り除く」
|
29
|
+
**Step7:** i = 1, 2, ... ,mo に対して以下を行います:「もし,左から ro_i番目のカンマを取り除いても奇数が4つ以上連続しないならば左から ro_i番目のカンマを取り除く(これにより,左から ro_i番目のかたまりのサイズが1大きくなる)」
|
30
30
|
|
31
31
|
同様に,偶数のかたまりの個数を減らしていきます.
|
32
32
|
|
33
|
-
**Step8:** 1以上
|
33
|
+
**Step8:** 1以上33以下の偶数me個からなる列 {re_1, re_2, ... , re_me}を考えます.
|
34
34
|
**Step9:** 次に「偶,偶, ... ,偶」という(かたまりサイズ1の偶数50個をカンマで区切った)並びを考えます.
|
35
|
-
**Step10:** i = 1, 2, ... ,me に対して以下を行います:「もし,左から re_i番目のカンマを取り除いても偶数が4つ以上連続しないならば左から re_i番目のカンマを取り除く」
|
35
|
+
**Step10:** i = 1, 2, ... ,me に対して以下を行います:「もし,左から re_i番目のカンマを取り除いても偶数が4つ以上連続しないならば左から re_i番目のカンマを取り除く(これにより,左から re_i番目のかたまりのサイズが1大きくなる)」
|
36
36
|
|
37
37
|
以上の操作によって生成された最大サイズ3の偶奇のかたまりを並べていきます.
|
38
38
|
|