📖 【廃案】きふわらべ式、将棋の先手勝率70%の時代に向けて、将棋のルールを変えない大会ルールの代案
W
R = 400 log10 ────── + R0
L
R = (ナンチャラ) + R0
「 👆 R0
というのは 平均的なプレイヤーのレーティングだそうだぜ」
「 👆 グラフで言うと x=0 のときのy軸上の点 R0
だぜ」
「 👆 だから 大会の平均は y=R0
だろうと 横線1本引いたわけだぜ」
W
R = (ナンチャラ) × ───── + (ナンチャラ)
L
「 👆 W は ウィン(Win;勝った数)、Lは ローズ(Lose;負けた数)だぜ。
W / L
というのは、1回負けたときに いくつ勝っているか という 勝ちと 負けの比だぜ」
「 比 が欲しいだけなら 分母を (勝った数 + 負けた数)
にする意味もないからだろ」
「 1つ負けた辺りの勝ち数 って 日本語で何て言うんだぜ?」
「 距離 / 時間
を 速度
と呼ぶのに なら(倣)うと、 勝ち速度 で どうだぜ?」
「 一応 計算しておくと、1つ負けるまでに 1つ勝つ人の 勝ち速度は 1 だぜ。
以下同様に」
1つ負けるまでに 1つ勝つ人の 勝ち速度は 1
1つ負けるまでに 2つ勝つ人の 勝ち速度は 2
10個負けるまでに 25個勝つ人の 勝ち速度は 2.5
30個負けるまでに 90個勝つ人の 勝ち速度は 3
「 👆 グラフにすると
勝ち速度が 1 なら オレンジ色の線、
勝ち速度が 3 なら 紫色の線だな」
R = 400 log10 x + b
「 👆 10を底とする x の対数の400倍に b を足したものが イロ・レーティングだな」
「 👇 10を底とする x の対数は、お金のゼロが並んでいるところの桁数に似ている」
log10 10 = 1
log10 100 = 2
log10 1000 = 3
log10 10000 = 4
log10 100000 = 5
「 じゃあ 勝ち速度の桁の ゼロの数 を数えているのかだぜ?」
「 しかし、 勝ち速度って 1 とか 2.5 とか 3 とか、 アマチュアなら 1桁台の 小さな数字だろ。
10連勝でもし続けなければ 勝ち速度の桁は ずっと 1 にも満たないだろ?」
「 計算結果が 使いやすい数になるのが 400 なんだろ。
だったら 計算してみろだぜ」
1倍
log10 1 = 0
log10 2 = 0.3010…
log10 3 = 0.4771…
log10 4 = 0.6020…
log10 5 = 0.6989…
log10 6 = 0.7781…
log10 7 = 0.8450…
log10 8 = 0.9030…
log10 9 = 0.9542…
log10 10 = 1
log10 11 = 1.0413…
log10 12 = 1.0791…
log10 13 = 1.1139…
log10 20 = 1.3010…
log10 30 = 1.4771…
log10 40 = 1.6020…
log10 50 = 1.6989…
log10 60 = 1.7781…
log10 70 = 1.8450…
log10 80 = 1.9030…
log10 90 = 1.9542…
log10 100 = 2
log10 110 = 2.0413…
log10 120 = 2.0791…
log10 130 = 2.1139…
log10 200 = 2.3010…
log10 300 = 2.4771…
log10 400 = 2.6020…
log10 500 = 2.6989…
log10 600 = 2.7781…
log10 700 = 2.8450…
log10 800 = 2.9030…
log10 900 = 2.9542…
log10 1000 = 3
log10 1100 = 3.0413…
log10 1200 = 3.0791…
log10 1300 = 3.1139…
1倍 200倍 300倍 400倍 500倍 600倍 700倍 800倍 900倍
log10 1 = 0 ,
log10 2 = 0.3010…, 60.2…, 90.3…, 120.4…, 150.5…, 180.6… 210.7…, 240.8…, 270.9…
log10 3 = 0.4771…, 95.4…, 143.1…, 190.8…, 238.5…, 286.2…, 333.9…, 381.6…, 429.4…
log10 4 = 0.6020…, 120.4…, 180.6…, 240.8…, 301.0…, 361.2…, 421.4…, 481.6…, 541.8…
log10 5 = 0.6989…, 139.7…, 209.6…, 279.5…, 349.4…, 419.3…, 489.2…, 559.1…, 629.0…
log10 6 = 0.7781…, 155.6…, 233.4…, 311.2…, 389.0…, 466.8…, 544.7…, 622.5…, 700.3…
log10 7 = 0.8450…, 169.0…, 253.5…, 338.0…, 422.5…, 507.0…, 591.5…, 676.0…, 760.5…
log10 8 = 0.9030…, 180.6…, 270.9…, 361.2…, 451.5…, 541.8…, 632.1…, 722.4…, 812.7…
log10 9 = 0.9542…, 190.8…, 286.2…, 381.6…, 477.1…, 572.5…, 667.9…, 763.3…, 858.8…
log10 10 = 1
「 👆 この中で 何倍がいいか 好きな数を選べと言われたら……フーム、別に 100倍でいいのでは……」
勝ち負け比 勝ち速度 1倍 200倍 300倍 400倍 500倍 600倍 700倍 800倍 900倍
10%, log10 1/9 = ー0.9542…, ー190.8…, ー286.2…, ー381.6…, ー477.1…, ー572.5…, ー667.9…, ー763.3…, ー858.8…
20%, log10 2/8 = ー0.6020…, ー120.4…, ー180.6…, ー240.8…, ー301.0…, ー361.2… ー421.4…, ー481.6…, ー541.8…
30%, log10 3/7 = ー0.3679…, ー 73.5…, ー110.3…, ー147.1…, ー183.9…, ー220.7…, ー257.5…, ー294.3…, ー331.1…
40%, log10 4/6 = ー0.1760…, ー 35.2…, ー 52.8…, ー 70.4…, ー 88.0…, ー105.6…, ー123.2…, ー140.8…, ー158.4…
50%, log10 5/5 = 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
60%, log10 6/4 = 0.1760…, 35.2…, 52.8…, 70.4…, 88.0…, 105.6…, 123.2…, 140.8…, 158.4…
70%, log10 7/3 = 0.3679…, 73.5…, 110.3…, 147.1…, 183.9…, 220.7…, 257.5…, 294.3…, 331.1…
80%, log10 8/2 = 0.6020…, 120.4…, 180.6…, 240.8…, 301.0…, 361.2…, 421.4…, 481.6…, 541.8…
90%, log10 9/1 = 0.9542…, 190.8…, 286.2…, 381.6…, 477.1…, 572.5…, 667.9…, 763.3…, 858.8…
「 👆 なんか 上下対称になったな……、しかし 別に 400 に優位性を感じないが……」
何勝何敗 1倍 200倍 300倍 400倍 500倍 600倍 700倍 800倍 900倍
log10 1/ 1 = 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
log10 11/10 = 0.0413…, 8.278…, 12.41…, 16.55…, 20.69…, 24.83…, 28.97…, 33.11…, 37.25…
log10 12/10 = 0.0791…, 15.83…, 23.75…, 31.67…, 39.59…, 47.50… 55.42…, 63.34…, 71.26…
log10 13/10 = 0.1139…, 22.78…, 34.18…, 45.57…, 56.97…, 68.36…, 79.76…, 91.15…, 102.54…
log10 14/10 = 0.1461…, 29.22…, 43.83…, 58.45…, 73.06…, 87.67…, 102.28…, 116.90…, 131.51…
log10 15/10 = 0.1760…, 35.21…, 52.82…, 70.43…, 88.04…, 105.6…, 123.2…, 140.8…, 158.4…
log10 17/10 = 0.2304…, 46.08…, 69.13…, 92.17…, 115.2…, 138.2…, 161.3…, 184.3…, 207.4…
log10 18/10 = 0.2552…, 51.05…, 76.58…, 102.1…, 127.6…, 153.1…, 178.6…, 204.2…, 229.7…
log10 20/10 = 0.3010…, 60.20…, 90.30…, 120.4…, 150.5…, 180.6…, 210.7…, 240.8…, 270.9…
log10 22/10 = 0.3424…, 68.48…, 102.7…, 136.9…, 171.2…, 205.4…, 239.6…, 273.9…, 308.1…
log10 24/10 = 0.3802…, 76.04…, 114.0…, 152.0…, 190.1…, 228.1…, 266.1…, 304.1…, 342.1…
log10 26/10 = 0.4149…, 82.99…, 124.4…, 165.9…, 207.4…, 248.9…, 290.4…, 331.9…, 373.4…
log10 28/10 = 0.4471…, 89.43…, 134.1…, 178.8…, 223.5…, 268.2…, 313.0…, 357.7…, 402.4…
log10 31/10 = 0.4913…, 98.27…, 147.4…, 196.5…, 245.6…, 294.8…, 343.9…, 393.0…, 442.2…
何勝何敗 1倍 400倍 およそ 度数法で
log10 1/ 1 = 0 , 0 , 0°
log10 11/10 = 0.0413…, 16.55…, 15°
log10 12/10 = 0.0791…, 31.67…, 30°
log10 13/10 = 0.1139…, 45.57…, 45°
log10 14/10 = 0.1461…, 58.45…, 60°
log10 15/10 = 0.1760…, 70.43…, 75°
log10 17/10 = 0.2304…, 92.17…, 90°
log10 18/10 = 0.2552…, 102.1…, 105°
log10 20/10 = 0.3010…, 120.4…, 120°
log10 22/10 = 0.3424…, 136.9…, 135°
log10 24/10 = 0.3802…, 152.0…, 150°
log10 26/10 = 0.4149…, 165.9…, 165°
log10 28/10 = 0.4471…, 178.8…, 180°
log10 31/10 = 0.4913…, 196.5…, 195°
log10 33/10 = 0.5185…, 207.4…, 210°
log10 34/10 = 0.5314…, 212.5…, 210°
log10 36/10 = 0.5563…, 222.5…, 225°
log10 37/10 = 0.5682…, 227.2…, 225°
log10 40/10 = 0.6020…, 240.8…, 240°
log10 43/10 = 0.6334…, 253.3…, 255°
log10 47/10 = 0.6720…, 268.8…, 270°
log10 51/10 = 0.7075…, 283.0…, 285°
log10 56/10 = 0.7481…, 299.2…, 300°
log10 61/10 = 0.7853…, 314.1…, 315°
log10 67/10 = 0.8260…, 330.4…, 330°
log10 73/10 = 0.8633…, 345.3…, 345°
log10 79/10 = 0.8976…, 359.0…, 360°
log10 87/10 = 0.9395…, 375.8…, 375°
log10 94/10 = 0.9731…, 389.2…, 390°
log10 103/10 = 1.012…, 405.1…, 405°
「 👆 まあまあ 15° ずつで キリのいい数字が来るだろ?」
「 勝率70% って、10局やったら7回勝つということかだぜ?」
「 やっぱ 勝った数/(勝った数+負けた数) の方が 分かりやすかったんじゃない?」
「 m回やったら1回勝てる 、
100回やったら n回勝てる 、
人は どっちの記法の方が分かりやすいんだぜ?」
y = 400 log10 x
「 じゃあ ラジアンを 度数法に変えるのが 400 なの?」
「 180 を 円周率で割ったら およそ 57.3 だしなあ。 400 なんか どこで見つけたんだろうなあ?」
「 イロ・レーティングが 0 なら 勝率50% ねえ。
120 なら 勝率33% ぐらい」
「 イロ・レーティングが 190 ぐらいなら 勝率25%、
240 ぐらいで 勝率20%、
270 ぐらいで 勝率16.6666% ぐらい、
315 ぐらいで 勝率14% ぐらい、
345 ぐらいで 勝率12% ぐらい、
390 ぐらいで 勝率10% ぐらいよ」
「 お母んの見てる早見表、定数Kが 16 になってないかだぜ?」
「 レーティング差の下2桁を 00
にして、4で割る。その数字が 3 なら、頭は .000
になるかな」
「 さっきの 3 を 5倍して、 レーティング差の下2桁から 引く」
0
45
90
135
180
225
270
315
360
405
450
495
540
585
630
675
720
765
810
855
900
度 有効部
0, 1
45, 0.75
90, 0.6
135, 0.5
180, 0.33
225, 0.25
270, 0.2
315, 0.17
360, 0.14
405, 0.1
※以下、類推
450, 0.75 ?
495, 0.6 ?
540, 0.5 ?
585, 0.33 ?
630, 0.25 ?
675, 0.2 ?
720, 0.17 ?
765, 0.14 ?
810, 0.1 ?
855 ?
900 0.1
「 👆 400倍しておくと、yが15ずつ増えていくとき、xは 有効桁数の整数が被らず並ぶのかあ。
自然数とマッピングしたんだな」
「 時計の 12時~4時、4時~8時、8時~12時で 3パターンあるのは
400単位ではなく 405単位 だからだぜ」
「 15ずつ増やしていくと たまたま 1200 が途中で来たんだぜ。
上図で 真数ゼロ を 12時の方に入れたが、
真数ゼロを 11時の方に入れれば 同じことだぜ」
「 405 というのは お父んが 15 単位にしたからか。 15 * 27 = 405
」
「 5、10、15 の3段階あるから、
0~400 で一周するはずの対数が
405、810、1215 の 3段階要るようになってしまったんだぜ」
「 400 じゃなく、 405 を掛けたら どんな数列だったんだろな?」
「 イロは R0 を完全任意だが仮決めで 2000 としたみたいで、慣習的には 1500 が使われることが多いそうだけど、
この数の優位性は何なの?」
「 レーティング 2000 なら x は 100_000 (十万) で 8時。キリがいいぜ。
数が好きなら 2000 はキリ番だから選ぶだろうなんだぜ。
y = 2000
の優位性はキリがいいからだぜ」
「 慣習的には 1500、 3時か~ x = 5600
の優位性って何だろな~。
慣習的なものは 分からんぜ」
「 yが105増えると、つまり、1時間で xはだいたい2倍前後だぜ」
yが105増えた
y x y x 倍率
---- ----- ---- ---------- -------------
000 1.0 105 1.8 1.8
015 1.1 120 2.0 1.8
030 1.2 135 2.2 1.8
045 1.3 150 2.4 1.8
060 1.4 165 2.6 1.9
075 1.5 180 2.8 1.9
090 1.7 195 3.1 1.8
105 1.8 210 3.4 1.9
120 2.0 225 3.7 1.9
135 2.2 240 4.0 1.8
150 2.4 255 4.3 1.8
165 2.6 270 4.7 1.8
180 2.8 285 5.2 1.9
195 3.1 300 5.6 1.8
210 3.4 315 6.1 1.8
225 3.7 330 6.7 1.8
240 4.0 345 7.3 1.8
255 4.3 360 7.9 1.8
270 4.7 375 8.7 1.9
285 5.2 390 9.5 1.8
300 5.6 405 10 1.8 ★レーティング1500もここ
315 6.1 420 11 1.8
330 6.7 435 12 1.8
345 7.3 450 13 1.8
360 7.9 465 15 1.9
375 8.7 480 16 1.8
390 9.5 495 17 1.8
405 10 510 19 1.9
420 11 525 21 1.9
435 12 540 22 1.8
450 13 555 24 1.8
465 15 570 27 1.8
480 16 585 29 1.8
495 17 600 32 1.9
510 19 615 33 1.7
525 21 630 38 1.8
540 22 645 41 1.9
555 24 650 45 1.9
570 27 675 49 1.8
585 29 690 53 1.8
600 32 705 58 1.8
615 33 720 63 1.9
630 38 735 69 1.8
645 41 750 75 1.8
650 45 765 82 1.8
675 49 780 89 1.8
690 53 795 97 1.8
705 58 810 11_0 1.9
720 63 825 12_0 1.9
735 69 840 13_0 1.9
750 75 855 14_0 1.9
765 82 870 15_0 1.8
780 89 885 16_0 1.8
795 97 900 18_0 1.9
810 11_0 915 19_0 1.7
825 12_0 930 21_0 1.8
840 13_0 945 23_0 1.8
855 14_0 960 25_0 1.8
870 15_0 975 27_0 1.8
885 16_0 990 30_0 1.9
900 18_0 1005 33_0 1.8
915 19_0 1020 35_0 1.8
930 21_0 1035 39_0 1.9
945 23_0 1050 42_0 1.8
960 25_0 1065 46_0 1.8
975 27_0 1080 50_0 1.9
990 30_0 1095 55_0 1.8
1005 33_0 1110 60_0 1.8
1020 35_0 1125 65_0 1.9
1035 39_0 1140 70_0 1.8
1050 42_0 1155 77_0 1.8
1065 46_0 1170 84_0 1.8
1080 50_0 1185 92_0 1.8
1095 55_0 1200 10_00 1.8
1110 60_0 1215 11_00 1.8
1125 65_0 1230 12_00 1.8
1140 70_0 1245 13_00 1.9
1155 77_0 1260 14_00 1.8
1170 84_0 1275 15_00 1.8
1185 92_0 1290 17_00 1.8
「 慣習的に使われる 1500 の優位性って、何もなくない?」
「 105 を足した 1605 のレーティングが 10000
だぜ」
「 じゃあ 5時間で19倍、 6時間で 32倍、 7時間で 58倍か?」
📖 イロレーティング
R'A = RA + K * WBA
R'B = RB - K * WBA
「 👆 勝った方が A とするとき、
B の元の勝率が A のレーティングに足され、
B のレーティングからは引かれるようだぜ」
Rating
------
A 1750
B 1600
「 👆 A のレーティングが 1750、 B のレーティングが 1600 とするとき、
レーティングの差は 150。
Aから見た勝率 WAB は暗記から ざっと 2時で 75%、
Bから見た勝率 WBA は暗記から ざっと 25% だぜ」
「 K定数というのがあって、 32 や 16 を使うらしいが、 仮に 32 だとしよう」
R'A = 1750 + 32 * 0.25
= 1750 + 8
= 1758
R'B = 1600 - 32 * 0.25
= 1600 - 8
= 1592
「 32 や 16 が他の数より優れているのかだぜ? もし優れているのなら、それは なぜだぜ?」
「 レーティングが変動するためには、
まあ 0未満の小数でもいいけど、
人の扱いやすさとしては 自然数の 1 以上であってほしいと仮定しようぜ」
「 対局は レーティング差が 400 以内で行われると 仮定しましょう」
「 暗記で、レーティング差が 400 のときは、
レーティング上位者が勝つ確率 90%、
レーティング下位者が勝つ確率 9% だぜ」
「 両者 足して 100% にならない お父んの暗記表 わらう。
ゼロサムが崩れてるぜ」
Rating
------
A 2000
B 1600
Constant
----
K 32
R'A = RA + K * WBA
= 1600 + 32 * 0.09
= 1600 + 2.88
= 1602.88
R'B = RB - K * WBA
= 1600 - 32 * 0.09
= 1600 - 2.88
= 1597.12
「 2.88
かあ。 自然数にマッピングするという観点からは 1
でもいいのでは?」
「 式は あるわけだし、 あとは ジャンケンでもしてればいいのでは?」
「 おっと、 暗記していては プログラムに落とし込めないぜ」
y = 400 * log10 x
y = 400 * log10 x
400 * log10 x = y
log10 x = y / 400
「 log10
って どうやって 移項するんだったかな……」
📖 x=-log y これを移項してy=の式にすることってできますか。
y = 400 * log10 x
400 * log10 x = y
log10 x = y / 400
x = 10 ^ (y / 400) ← ??
y = 400 * log10 x
400 * log10 x = y
log10 x = y / 400
log10 x * (1 / log10 1) = y / 400 * (1 / log10 1) ← ??
x = y / 400 * (1 / log10 1) ← ??
x = (y / 400) / log10 1 ← ??
``
![ramen-tabero-futsu2.png](https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png)
「 👆 こうか?」
![kifuwarabe-futsu.png](https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png)
「 計算機によると、違うそうだぜ」
![ramen-tabero-futsu2.png](https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png)
「 その計算機に 答えを聞いてくれだぜ」
![kifuwarabe-futsu.png](https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png)
「 👇 WolframAlpha によると、 400x だそうだぜ」
📖 [400 * x = 400 * log10 x](https://www.wolframalpha.com/input?i=400+*+x+=+400+*+log10+x&assumption={"FunClash",+"log"}+-%3E+{"Log10"}&lang=ja)
![ramen-tabero-futsu2.png](https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png)
「 そうは ならんやろ」
![ramen-tabero-futsu2.png](https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png)
「 `400 * log10 10` は 400、
`400 * log 100` は 800、
じゃあ、
`400 なら 10`、
`800 なら 100` なのは なんでだぜ?」
![ohkina-hiyoko-futsu2.png](https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png)
「 40 で割ったり、 8 で割ったんじゃないの?」
![kifuwarabe-futsu.png](https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png)
「 👇 指数の逆関数が 対数なのだから、
対数の逆関数は 指数になるんじゃないのかなあ?」
📖 [【標準】指数関数の逆関数](https://math.nakaken88.com/textbook/standard-inverse-function-exponential-function/)
```plaintext
y = 400 * log10 x
400 * log10 x = y
log10 x = y / 400
x = 10 ^ (y / 400) ← ??
y = 400 * log10 x
400 * log10 x = y
log10 x = y / 400
x = 10 ^ log10(y / 400) ← ??
「 👇 WolframAlpha によると、 10 ^ (x/400)
だそうだぜ」
(カタカタカタカタ)
.
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント