バトルファクトリーの最初の6匹を解析してみる その7

30件じゃデータが足りないので、新たに144件データを取った。合計174件。
データはgithubで公開中。 GitHub - oupo/factory-log
そのシャッフルの結果を集計してみた。

-- 0
1,2,3,4,5,6: 6
-- 2
1,2,3,6,5,4: 6
1,2,6,4,5,3: 4
1,6,3,4,5,2: 4
1,5,3,4,2,6: 6
1,2,5,4,3,6: 6
1,2,3,5,4,6: 2
1,2,3,4,6,5: 12
6,2,3,4,5,1: 5
5,2,3,4,1,6: 1
-- 3
1,2,3,5,6,4: 5
1,6,3,4,2,5: 7
5,2,3,4,6,1: 14
1,2,3,6,4,5: 5
6,2,3,4,1,5: 2
1,5,3,4,6,2: 10
1,2,6,4,3,5: 6
1,2,5,4,6,3: 9
-- 4
6,2,5,4,3,1: 8
6,5,3,4,2,1: 5
1,5,6,4,2,3: 4
1,5,3,6,2,4: 7
5,2,6,4,1,3: 6
5,2,3,6,1,4: 6
6,2,3,5,4,1: 5
1,6,5,4,3,2: 3
1,2,6,5,4,3: 4
5,6,3,4,1,2: 4
1,6,3,5,4,2: 6
1,2,5,6,3,4: 6
  • 3回のswapを必要とするようなパターンはやっぱりない
  • 1〜4番目で元の位置が同じだったもの以外は5か6しかやっぱりない
  • 「5,2,3,4,6,1」が多くて逆に「6,2,3,4,1,5」が少ない。

シャッフル方法が「5番目の位置とランダムな位置をswap、6番目の位置とランダムな位置をswap」と仮定すると:
5,2,3,4,6,1は「5<->6, 6<->1」と「5<->1, 6<->5」のパターンがある。6,2,3,4,1,5は「5<->1, 6<->1」のパターンしかない。
「1,2,3,4,6,5」が多いのも「5<->5, 6<->5」と「5<->6, 6<->5」の二パターンあるから?



とりあえず適当にシャッフル結果が「1,2,3,6,5,4」であるseedの6匹の性格値決定後の乱数 % 6を調べてみた。

log/20091021-019.txt
554: 0x67b4f366 4
555: 0x711916e1 3
log/20091021-020.txt
472: 0x54e85a92 4
473: 0x11736c9d 3
log/20091021-033.txt
379: 0xd9f0a671 4
380: 0x8a93ac90 3
log/20091021-048.txt
224: 0xe35c79d6 4
225: 0x8d037491 3
log/20091021-055.txt
252: 0x60402398 4
253: 0xa5b7d82b 3
log/20091021-117.txt
561: 0xaa388f2f 4
562: 0x630fa976 3

見事に全部一致!
「1,2,3,6,5,4」のswapは5<->5, 6<->4。プログラム中では0 originと考えられるので4<=>"4", 5<=>"3"。ほら、swap結果とも一致している!



ほかのも見てみよう。「5,2,3,4,6,1」は「5<->6, 6<->1」と「5<->1, 6<->5」の二パターンあるので「5,0」と「0,4」が出てくるはず!

log/20091020-005.txt
256: 0xf1fdeafe 5
257: 0xa52ad299 0
log/20091020-007.txt
251: 0x8d2f136b 5
252: 0xa4b83f02 0
log/20091020-016.txt
146: 0xe7b9f198 5
147: 0xc5588e2b 0
log/20091021-013.txt
224: 0x24d779d6 5
225: 0xe8627491 0
log/20091021-014.txt
238: 0x4ed23264 0
239: 0xf8324d07 4
log/20091021-015.txt
365: 0x7607a4db 5
366: 0xb1de4bb2 0
log/20091021-021.txt
453: 0x44b197d9 5
454: 0xe6b825d8 0
log/20091021-044.txt
600: 0x6b512bd4 5
601: 0x26e2a1b7 0
log/20091021-079.txt
315: 0x72a76107 5
316: 0xa33ed26e 0
log/20091021-081.txt
283: 0x4e47800f 5
284: 0xf81078d6 0
log/20091021-102.txt
244: 0x11bda532 5
245: 0xccc0f2bd 0
log/20091021-132.txt
278: 0xe68e15f0 0
279: 0x5cced7a3 4
log/20091021-139.txt
597: 0x34979fa9 5
598: 0xfcead968 0
log/20091021-144.txt
216: 0x31c8d61e 0
217: 0x9cf4af39 4

やっぱりその通りだ!



シャッフル結果とswapの表を作ってみた。

6,2,3,4,1,5: [0,0]
6,5,3,4,2,1: [1,0]
6,2,5,4,3,1: [2,0]
6,2,3,5,4,1: [3,0]
6,2,3,4,5,1: [4,0]
5,2,3,4,6,1: [5,0],[0,4]
5,6,3,4,1,2: [0,1]
1,6,3,4,2,5: [1,1]
1,6,5,4,3,2: [2,1]
1,6,3,5,4,2: [3,1]
1,6,3,4,5,2: [4,1]
1,5,3,4,6,2: [5,1],[1,4]
5,2,6,4,1,3: [0,2]
1,5,6,4,2,3: [1,2]
1,2,6,4,3,5: [2,2]
1,2,6,5,4,3: [3,2]
1,2,6,4,5,3: [4,2]
1,2,5,4,6,3: [5,2],[2,4]
5,2,3,6,1,4: [0,3]
1,5,3,6,2,4: [1,3]
1,2,5,6,3,4: [2,3]
1,2,3,6,4,5: [3,3]
1,2,3,6,5,4: [4,3]
1,2,3,5,6,4: [5,3],[3,4]
1,2,3,4,6,5: [4,4],[5,5]
1,2,3,4,5,6: [5,4],[4,5]
5,2,3,4,1,6: [0,5]
1,5,3,4,2,6: [1,5]
1,2,5,4,3,6: [2,5]
1,2,3,5,4,6: [3,5]