Pyth , 11 byte
WOyG~ZtOT)Z
Catatan: program ini mungkin akan macet dengan kesalahan memori di komputer mana pun. Untuk mengujinya, coba ganti G
dengan string yang lebih pendek, seperti dalam kode ini, yang menghasilkan angka rata-rata sekitar 28000:
pyth -c 'WOy"abcdefghijklm"~ZtOUT)Z'
Kode ini berulang, menambahkan angka acak dari -1 hingga 8 Z
, dengan probabilitas 2 ^ -26 keluar dari loop pada setiap pengulangan. Probabilitas 2 ^ -26 diperoleh dengan memilih elemen acak ( O
) dari himpunan semua himpunan bagian ( y
) dari alfabet ( G
).
Detail & justifikasi teknis:
Probabilitas 2 ^ -26 berasal dari dua fakta:, y
ketika dipanggil pada sekuens, adalah fungsi power-set, sebuah susunan daftar semua himpunan bagian dari input. Karena input,, G
adalah 26 karakter, set daya ini, yG
memiliki 2 ^ 26 entri. OyG
memilih elemen acak dari 2 ^ 26 entri itu. Salah satu dari entri itu, string kosong, akan dievaluasi sebagai falsy ketika diteruskan keW
, while. Oleh karena itu, ada kemungkinan 2 ^ -26 keluar dari loop setiap kali.
Dalam jumlah tetap dari siklus loop K, probabilitas mendapatkan angka K * 3.5 + m dan mendapatkan K * 3.5 - m adalah sama, karena setiap urutan penambahan yang mencapai satu total dapat dibalik, -1 -> 8, 0 -> 7, dll., Untuk mencapai yang lain. Selain itu, angka yang lebih dekat ke K * 3,5 jelas lebih mungkin daripada angka yang lebih jauh. Dengan demikian, jika K> 2000000 / 3.5 = 571428.5 kemungkinan mendapatkan angka lebih dari 10.00000 lebih besar dari 75%, karena beberapa hasil di atas angka itu dapat dimasukkan ke dalam korespondensi satu-ke-satu dengan semua hasil di bawah ini yang angka, dan bagian atas kurang dari setengah, dapat dimasukkan ke dalam korespondensi satu-ke-satu dengan yang di bawah 1000000. Kemungkinan mendapatkan setidaknya 571429 loop adalah (1-2 ^ -26) ^ 571429, yang tidak ada kurang dari (1-2 ^ -26 * 571429), perkiraan berapa kali meninggalkan loop pada 571429 percobaan pertama, yaitu 99,1%. Jadi, pada 99,1% atau lebih uji coba, ada kemungkinan 75% atau lebih untuk mendapatkan setidaknya 10.00000, sehingga ada lebih dari 50% peluang untuk mendapatkan lebih dari 10.00000.
Kode ini bergantung pada perilaku di O
mana bug diperkenalkan secara tidak sengaja 3 hari yang lalu dan diperbaiki hari ini. Ini harus bekerja pada versi Pyth 3 apa pun dari sebelum 22 Desember, atau setelah hari ini. Kode berikut ini setara, dan selalu berfungsi:
WOyG~ZtOUT)Z