Bisakah kita menghasilkan bilangan acak menggunakan bilangan irasional seperti π dan e?


21

Bilangan irasional seperti π , e dan 2 memiliki urutan unik dan tidak berulang setelah titik desimal. Jika kita mengekstrakdigit ke-ndari angka-angka seperti itu (di mananadalah berapa kali metode ini dipanggil) dan membuat angka dengan digit seperti itu, bukankah kita seharusnya mendapatkan generator angka acak yang sempurna? Misalnya, jika kita menggunakan2 ,edanπ, angka pertama adalah 123, yang kedua adalah 471, yang berikutnya adalah 184 dan seterusnya.


30
Anda memiliki definisi aneh "acak" di kepala Anda. "Acak" berarti "tidak dapat diprediksi". Bagaimana urutan Anda tidak dapat diprediksi? Apa definisi "acak" yang ada dalam pikiran Anda? Mungkin yang Anda panggil "acak" memiliki nama lain.
Eric Lippert

7
Perhatikan algoritma spigot dapat digunakan untuk menghasilkan hex digit apa pun di pi, tanpa harus menghasilkan digit sebelumnya.
rcgldr

10
@EricLippert Tidak semua generator nomor pseudorandom dapat diprediksi?
Federico Poloni

7
Istilah ini muncul beberapa kali: ini adalah "angka acak psuedo" bukan "angka acak." Ini adalah angka yang dihasilkan secara algoritmik (jadi tidak acak), tetapi memiliki banyak properti yang diinginkan yang dimiliki angka acak. Algoritme lain adalah algoritma "buku telepon NYC", di mana Anda mencatat daftar nomor telepon, secara alfabet, dan mengambil digit terakhir dari masing-masingnya. Bukan acak, tapi pseudorandom dengan beberapa perilaku statistik yang bagus!
Cort Ammon - Reinstate Monica

5
"Pseudo" berarti "mirip dengan tetapi tidak". Jadi angka acak pseudo mirip dengan, tetapi bukan angka acak. Jadi saya tidak mengikuti jalan pikiran Anda di sini. Sekarang, PRNG crypto-strength memiliki sifat yang diinginkan bahwa jika keadaan internal tidak diketahui oleh penyerang, tidak ada uji statistik yang kami miliki dapat membedakan PRNG crypto dari RNG yang benar, dan itu termasuk kurangnya prediktabilitasnya. Tetapi digit pi tidak memiliki properti itu; mereka sangat mudah ditebak.
Eric Lippert

Jawaban:


17

Kerugian yang paling jelas adalah kompleksitas yang tidak perlu dari algoritma PRNG berdasarkan bilangan irasional. Mereka membutuhkan lebih banyak perhitungan per digit yang dihasilkan daripada, katakanlah, LCG; dan kompleksitas ini biasanya tumbuh seiring Anda melangkah lebih jauh dalam urutan. Menghitung 256 bit π pada bit dua kuadriliunuta membutuhkan waktu 23 hari pada 1000 komputer (pada tahun 2010) - kompleksitas yang agak penghalang untuk RNG.


47

Untuk definisi sempurna yang masuk akal, mekanisme yang Anda gambarkan bukanlah penghasil angka acak yang sempurna.

  • Tidak mengulangi tidak cukup. Angka desimal 0.101001000100001... tidak berulang tetapi merupakan penghasil angka acak yang mengerikan, karena jawabannya adalah "selalu" nol, kadang-kadang satu, dan tidak pernah yang lain.

  • Kami tidak benar-benar tahu apakah setiap digit terjadi sama sering dalam ekspansi desimal π atau  e (meskipun kami menduga mereka melakukannya).

  • Dalam banyak situasi, kami memerlukan angka acak agar tidak dapat diprediksi (memang, jika Anda bertanya kepada orang secara acak apa arti "acak", mereka mungkin akan mengatakan sesuatu tentang ketidakpastian). Angka-angka dari konstanta terkenal benar-benar dapat diprediksi.

  • Kami biasanya ingin menghasilkan angka acak dengan cukup cepat, tetapi menghasilkan digit konstanta matematika berturut-turut cenderung cukup mahal.

  • Namun demikian, benar bahwa digit π dan  e terlihat acak secara statistik, dalam arti bahwa setiap urutan digit yang mungkin tampaknya terjadi sesering yang seharusnya. Jadi, misalnya, setiap digit memang terjadi sangat dekat dengan satu kali dalam sepuluh; setiap urutan dua digit sangat dekat dengan satu dalam seratus, dan seterusnya.


11
Untuk poin ketiga, harus ada semacam input 'rahasia' untuk proses pembuatan Anda agar tidak dapat diprediksi (proses pembuatan itu sendiri harus deterministik jika kita tidak ingin mengandalkan generator nomor acak lain.). Input ekstra ini sering disebut seed .
Kadal diskrit

6
@ Discretelizard Ini benar tetapi tidak ada banyak ruang untuk penyemaian di luar "mengembalikan digit berurutan dimulai dengan posisi ." Pada saat Anda telah melihat 2 log s digit, urutan yang terjadi hanya beberapa kali dalam pertama s 2 digit dari π , jadi unik dalam pertama s digit dengan probabilitas tinggi dan Anda tahu benih. s2logss2πs
David Richerby

2
@Barmar: Pada saat itu Anda harus bertanya apakah teknik ini benar-benar lebih berkinerja (dan lebih hemat ruang) daripada PRNG "standar".
Kevin

2
Digit pi atau e benar - benar tidak dapat diprediksi, terutama karena pemirsa / penerima / pemecah kode dll tidak tahu seberapa jauh dalam urutan Anda sudah. Jika Anda mulai dari angka digit 237423 dari urutan, akan sangat lama untuk mencari tahu, secara acak.
Insinyur Terbalik

10
@DaveBoltman Jika kita tidak melakukan sesuatu seperti kriptografi, tidak ada yang akan cukup peduli untuk mengatasinya. Jika kami melakukan kriptografi, itu adalah asumsi standar bahwa musuh Anda tahu algoritma apa yang Anda gunakan yang, dalam hal ini, termasuk nomor irasional apa urutannya berasal dan bagaimana Anda memilih digit, kecuali untuk parameter seperti "mulai dari angka ". Jika musuh tidak tahu nomor apa yang Anda gunakan, tentu saja, digit berikutnya bisa berupa apa saja, tetapi mereka menebak itu s dan permainan sudah habis. ulang tahunku
David Richerby

29

Secara kriptografis tidak berguna karena musuh dapat memprediksi setiap digit. Ini juga sangat memakan waktu.


11
OP tidak pernah menyebutkan kriptografi ...
AnoE

13
@ Tidak Jadi? Bahwa proses ini akan menjadi tidak berguna secara kriptografis masih relevan karena crypto adalah pengguna keranjingan. Jika Anda membuka perangkat /dev/randomdan /dev/urandomseseorang akan selalu membuka kriptografi.
Greg Schmit - Reinstate Monica

6
Anda akan kagum melihat betapa tidak berfungsinya keamanan kriptografi dalam pembuatan PRNG secara real time. nomor irasional sering digunakan dalam PRNG GPU. Ada banyak aplikasi di mana cara "mengamankan" PRNG Anda sama sekali tidak relevan. Apa yang penting dalam sesuatu seperti generasi kebisingan yang koheren adalah kualitas distribusi dan seberapa sering periode Anda berulang, dan efek korelasi karena biji yang berdekatan (yang akan membutuhkan mixer longsor untuk memperbaikinya). Jujur saja jawaban Anda salah, tidak ada di sini, dan mungkin harus dihapus.
whn

6
Ini bukan jawaban untuk pertanyaan itu. Perhatikan OP dari pertanyaan terkait menggunakan angka acak untuk menabur analisis monte carlo. Pembaruan untuk menjawab pertanyaan yang diajukan harus dipertimbangkan. mathoverflow.net/questions/26942/…
CramerTV

8
Tentu saja ada banyak aplikasi di mana PRNG tidak perlu aman secara kriptografi. Tetapi OP tidak bertanya apakah itu berguna untuk beberapa tujuan, mereka bertanya apakah metode ini adalah "RNG sempurna". Meskipun mereka belum mengklarifikasi apa yang mereka maksud dengan "sempurna", fakta bahwa itu tidak cocok untuk salah satu penggunaan utama RNG tampaknya sangat relevan untuk menjawab pertanyaan itu.
Geoffrey Brent

7

( diperbarui setelah banyak orang menunjukkan bahwa generator angka acak tidak sama dengan urutan normal tunggal)

Jika Anda bertanya apakah Anda bisa mendapatkan urutan normal dari π (yaitu, semua angka muncul secara seragam), maka ada beberapa jawaban tentang aliran matematika. Misalnya, jawaban tentang Distribusi digit-digit Pi mengatakan:

... diyakini bahwa π adalah angka normal (~ distribusi seragam dari setiap urutan digit).

Untuk data distribusi digit, lihat misalnya http://www.eveandersson.com/pi/precalculated-frequencies atau https://thestarman.pcministry.com/math/pi/RandPI.html (1000 digit pertama):

masukkan deskripsi gambar di sini

Di mathoverflow, ada juga jawaban bagus di:


3
Jika Anda yakin pertanyaan itu adalah duplikat, lalu mengapa Anda menjawabnya? Anda harus menandai saja, bukan memperkuat perilaku posting yang tidak diinginkan.
dkaeae

8
@dkaeae Tidak ada dukungan untuk duplikat pertanyaan di situs lain. Lebih jauh, pertanyaan yang sama di situs yang berbeda dapat memperoleh jawaban yang berbeda pula. Dalam hal ini, situs seperti Matematika mungkin tidak memberikan banyak pertimbangan untuk masalah keamanan. Lihat juga jawaban ini . Harap perhatikan bahwa kami tidak ingin mengajukan pertanyaan yang sama di banyak situs pada saat yang bersamaan, karena ini cenderung mengarah pada upaya yang sia-sia. Tetapi pertanyaan yang sama oleh orang yang berbeda di waktu yang berbeda di situs yang berbeda biasanya baik-baik saja.
Kadal diskrit

6
Sayangnya, hanya karena angka normal, bukan berarti mengeluarkan digitnya memberi Anda RNG yang baik. Output dari RNG tersebut masih sepenuhnya dapat diprediksi. Apakah itu dapat diterima mungkin tergantung pada aplikasi. Jadi, saya tidak berpikir itu sesederhana seperti mengatakan "pi itu normal, tutup huruf".
DW

2
Itu hanya pengamatan empiris untuk beberapa digit pertama? Apa yang dimaksud dengan itu?
kerajinan marshal

1
@DW Saya menyebutkan bahwa saya bermaksud menggunakan kombinasi angka seperti π dan e. Dan tolong katakan bagaimana output akan dapat diprediksi jika kita tidak tahu seberapa jauh urutan generatornya?
Abhradeep Sarkar

1

Secara umum, pendekatan ini tidak berhasil: "keacakan" tidak berarti Anda mendapatkan banyak digit berbeda, tetapi ada aspek-aspek lain juga. Misalnya, tes klasik adalah untuk melihat apakah semua kombinasi dua digit, atau tiga digit, dll. Terjadi dengan frekuensi yang sama. Ini akan menjadi tes yang sangat sederhana, yang dapat mengesampingkan hasil non-acak yang jelas, tetapi masih terlalu sederhana untuk memeriksa perilaku yang benar-benar acak.

Lihat halaman Wikipedia tentang Tes Keacakan sebagai kumpulan tautan ke sumber utama mengenai hal ini. Mereka menyebutkan sejumlah konsep yang terdengar rumit; itu tidak begitu penting untuk masuk ke dalam perincian mendalam tentang ini - tetapi jelas bahwa tidak mungkin secara intuitif untuk menyatakan nomor tertentu untuk menjadi sumber yang baik untuk angka-angka tersebut.

Pada catatan positif: Untuk bilangan irasional tertentu, Anda tentu saja bebas untuk mencobanya; yaitu, menghitung angka ke tingkat digit yang cukup besar, dan menjalankannya melalui semua tes yang dikenal (ada alat untuk itu, lihat tautan di atas). Jika ukurannya cukup baik untuk kasus penggunaan Anda, dan jika Anda sadar bahwa ini jelas tidak berguna untuk aplikasi kriptografi, dan selalu mendapatkan angka yang sama jika Anda harus memulai dari awal, dan kualitasnya mungkin menurun jika Anda melewati yang nAnda pilih untuk menguji keacakan, Anda bisa menggunakan angka-angka itu. Tetapi akan jauh lebih baik untuk menggunakan generator nomor acak khusus (semu); dan tidak ada yang mengalahkan sumber fisik yang baik dari keacakan.


4
πe

3
Ayrat's answer link ke situs lain di mana matematikawan telah melakukan tes ini. Mereka percaya, tetapi belum membuktikan, bahwa π memenuhi tes statistik.
Barmar

Ya, itulah yang saya maksud dengan paragraf terakhir saya - hanya mencoba secara empiris itu bermanfaat; tetapi dengan keras hal itu tidak terbukti (atau tidak bisa dianggap sebagai benar) untuk orang yang irasional "yang tampak rumit". @DavidRicherby, @ Barmar
AnoE

1

Ini memberikan angka acak yang baik sampai Anda menyadari bagaimana itu diproduksi, seperti halnya banyak angka acak semu. Angka-angka irasional (non aljabar dan non transendental) yang Anda pilih adalah umum dan dengan demikian lebih mudah ditebak daripada yang lain. Saya tidak melihat masalah dengan metode ini asalkan Anda memilih generator yang jarang terlihat.


4
Tidak ada masalah kecuali inefisiensi kotor, fakta bahwa Anda mengandalkan musuh apa pun yang tidak mengetahui algoritma Anda, fakta bahwa pilihan generator yang buruk dapat menyebabkan urutan yang sangat buruk, ...
David Richerby

4
2πe

Bilangan transendental adalah bilangan real yang tidak aljabar. Bilangan real tidak mungkin non aljabar dan non transendental.
Brady Gilg
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.