# From www.speedsolving.com/forum/showthread.php?52290-Move-Counts-From-TNoodle-Scrambles&p=1066981&viewfull=1#post1066981
PingSkills = '''U' 101,695
R' 79,586
R 77,804
U2 75,246
F 67,736
R2 53,380
F' 43,326
U 42,140
F2 9,087'''.replace(',', '').splitlines()
# From www.jaapsch.net/puzzles/cube2.htm#numpos
Jaap = '''0 1 1
1 6 6
2 3 24 27
3 24 96 120
4 6 144 384 534
5 72 768 1,416 2,256
6 9 564 3,608 4,788 8,969
7 126 3,600 15,072 14,260 33,058
8 5 1,248 18,996 57,120 36,780 114,149
9 120 9,480 85,548 195,400 69,960 360,508
10 1,728 55,548 341,604 487,724 43,984 930,588
11 72 14,016 238,920 841,500 256,248 96 1,350,852
12 1,032 56,440 455,588 268,532 944 782,536
13 12 928 32,968 54,876 1,496 90,280
14 8 160 108 276'''.replace(',', '').splitlines()
print(sum((1 + ('2' in move)) * int(ctr)
for p in PingSkills
for move, ctr in [p.split()])
/ 50000)
print(sum((moves if moves >= 11 else (12 - moves % 2)) * ctr[-1] / 3674160
for j in Jaap
for moves, *ctr in [map(int, j.split())]))
IyBGcm9tIHd3dy5zcGVlZHNvbHZpbmcuY29tL2ZvcnVtL3Nob3d0aHJlYWQucGhwPzUyMjkwLU1vdmUtQ291bnRzLUZyb20tVE5vb2RsZS1TY3JhbWJsZXMmcD0xMDY2OTgxJnZpZXdmdWxsPTEjcG9zdDEwNjY5ODEKUGluZ1NraWxscyA9ICcnJ1UnCTEwMSw2OTUKUicJNzksNTg2ClIJNzcsODA0ClUyCTc1LDI0NgpGCTY3LDczNgpSMgk1MywzODAKRicJNDMsMzI2ClUJNDIsMTQwCkYyCTksMDg3JycnLnJlcGxhY2UoJywnLCAnJykuc3BsaXRsaW5lcygpCgojIEZyb20gd3d3LmphYXBzY2gubmV0L3B1enpsZXMvY3ViZTIuaHRtI251bXBvcwpKYWFwID0gJycnMAkxCQkJCQkJCQkJCQkJMQoxCQk2CQkJCQkJCQkJCQk2CjIJCTMJMjQJCQkJCQkJCQkJMjcKMwkJCTI0CTk2CQkJCQkJCQkJMTIwCjQJCQk2CTE0NAkzODQJCQkJCQkJCTUzNAo1CQkJCTcyCTc2OAkxLDQxNgkJCQkJCQkyLDI1Ngo2CQkJCTkJNTY0CTMsNjA4CTQsNzg4CQkJCQkJOCw5NjkKNwkJCQkJMTI2CTMsNjAwCTE1LDA3MgkxNCwyNjAJCQkJCTMzLDA1OAo4CQkJCQk1CTEsMjQ4CTE4LDk5Ngk1NywxMjAJMzYsNzgwCQkJCTExNCwxNDkKOQkJCQkJCTEyMAk5LDQ4MAk4NSw1NDgJMTk1LDQwMAk2OSw5NjAJCQkzNjAsNTA4CjEwCQkJCQkJCTEsNzI4CTU1LDU0OAkzNDEsNjA0CTQ4Nyw3MjQJNDMsOTg0CQk5MzAsNTg4CjExCQkJCQkJCTcyCTE0LDAxNgkyMzgsOTIwCTg0MSw1MDAJMjU2LDI0OAk5NgkxLDM1MCw4NTIKMTIJCQkJCQkJCTEsMDMyCTU2LDQ0MAk0NTUsNTg4CTI2OCw1MzIJOTQ0CTc4Miw1MzYKMTMJCQkJCQkJCTEyCTkyOAkzMiw5NjgJNTQsODc2CTEsNDk2CTkwLDI4MAoxNAkJCQkJCQkJCQk4CTE2MAkxMDgJMjc2JycnLnJlcGxhY2UoJywnLCAnJykuc3BsaXRsaW5lcygpCgpwcmludChzdW0oKDEgKyAoJzInIGluIG1vdmUpKSAqIGludChjdHIpCiAgICAgICAgICBmb3IgcCBpbiBQaW5nU2tpbGxzCiAgICAgICAgICBmb3IgbW92ZSwgY3RyIGluIFtwLnNwbGl0KCldKQogICAgICAvIDUwMDAwKQoKcHJpbnQoc3VtKChtb3ZlcyBpZiBtb3ZlcyA+PSAxMSBlbHNlICgxMiAtIG1vdmVzICUgMikpICogY3RyWy0xXSAvIDM2NzQxNjAKICAgICAgICAgIGZvciBqIGluIEphYXAKICAgICAgICAgIGZvciBtb3ZlcywgKmN0ciBpbiBbbWFwKGludCwgai5zcGxpdCgpKV0pKQo=