Generasi rawak. Penjana Nombor Rawak Excel dalam Fungsi dan Analisis Data

Penjana nombor dalam talian yang jelas dan mudah, yang digunakan dalam Kebelakangan ini populariti. Menerima pengedaran terbesar semasa pemungutan hadiah dalam rangkaian sosial, di kalangan pengguna.

Ia juga popular di kawasan lain. Juga kami mempunyai atau kata laluan dan nombor.

Penjana nombor rawak dalam talian kami.

Penjana rawak kami tidak memerlukan anda memuat turunnya ke PC peribadi anda. Semuanya berlaku dalam mod penjana nombor dalam talian. Hanya tentukan parameter seperti: julat nombor dalam talian di mana nombor akan dipilih secara rawak. Juga nyatakan bilangan nombor yang akan dipilih.

Sebagai contoh, anda mempunyai kumpulan Vkontakte. Dalam satu kumpulan, anda memenangi 5 hadiah, antara bilangan peserta yang menyiarkan semula penyertaan. Dengan bantuan permohonan khas, kami menerima senarai peserta. Masing-masing diberikan nombor siri untuk nombor dalam talian.

Sekarang kita pergi ke penjana dalam talian kami dan menunjukkan julat nombor (bilangan peserta). Sebagai contoh, kami meminta 5 nombor diperlukan dalam talian, kerana kami mempunyai 5 hadiah. Sekarang kita tekan butang jana. Kemudian kita dapat 5 nombor rawak dalam talian, dalam julat dari 1 hingga 112 termasuk. 5 nombor yang dijana dalam talian akan sepadan dengan nombor siri lima peserta yang menjadi pemenang cabutan. Semuanya mudah dan selesa.

Satu lagi kelebihan penjana nombor rawak ialah semua nombor dalam talian dijana secara rawak. Iaitu, tidak mungkin untuk mempengaruhinya, atau mengira nombor yang akan datang. Apa yang menjadikannya jujur ​​dan boleh dipercayai, dan pentadbiran, yang menarik hadiah dengan bantuan penjana percuma kami, adalah jujur ​​dan sopan dalam menghadapi peserta. Dan jika anda ragu-ragu tentang penyelesaian, maka anda boleh menggunakan kami

Mengapa penjana nombor rawak adalah yang terbaik?

Hakikatnya ialah penjana nombor dalam talian tersedia pada mana-mana peranti dan sentiasa dalam talian. Anda boleh dengan jujur ​​menjana sebarang nombor untuk mana-mana idea anda. Dan sama untuk projek itu digunakan penjana nombor rawak dalam talian. Terutama jika anda perlu menentukan pemenang permainan atau untuk nombor yang berbeza dalam talian. Hakikatnya ialah penjana nombor rawak menjana sebarang nombor sepenuhnya secara rawak tanpa algoritma. Ia pada asasnya sama untuk nombor.

Penjana nombor rawak dalam talian secara percuma!

Penjana nombor rawak dalam talian secara percuma untuk semua orang. Anda tidak perlu memuat turun atau membeli apa-apa penjana nombor rawak dalam talian untuk cabutan. Anda hanya perlu pergi ke laman web kami dan dapatkan hasil yang anda perlukan secara rawak. Kami bukan sahaja mempunyai penjana nombor rawak tetapi juga diperlukan oleh ramai yang pasti akan membantu anda memenangi loteri. Penjana nombor rawak dalam talian sebenar untuk loteri adalah kemalangan mutlak. Yang mana tapak kami mampu berikan kepada anda.

Nombor rawak dalam talian

Jika anda sedang mencari nombor rawak dalam talian, maka kami telah mencipta sumber ini hanya untuk anda. Kami sentiasa meningkatkan algoritma kami. Anda menjadi nyata di sini penjana nombor rawak. Ia akan menyediakan sebarang keperluan sebagai penjana rawak yang anda perlukan sepenuhnya secara percuma dan pada bila-bila masa. Hasilkan nombor rawak dalam talian dengan kami. Sentiasa pastikan setiap nombor yang dijana adalah rawak sepenuhnya.

Penjana nombor rawak

Penjana nombor rawak kami secara rawak memilih nombor sepenuhnya secara rawak. Tidak kira hari atau jam apa anda ada pada komputer anda. Ini adalah pilihan buta sebenar. Penjana rawak hanya mengocok semua nombor secara rawak. Dan kemudian secara rawak memilih daripada mereka bilangan nombor rawak yang anda tentukan. Kadang-kadang nombor boleh diulang, yang membuktikan rawak lengkap penjana nombor rawak.

Rambang dalam talian

Rawak ialah pilihan yang paling pasti untuk cabutan. Penjana dalam talian adalah nyata pemilihan rawak. Anda dilindungi daripada sebarang pengaruh pada pilihan nombor rawak. Merakam proses pemilihan pemenang dalam talian secara rawak pada video. Itu sahaja yang anda perlukan. Main gurauan dalam talian yang adil dengan kami penjana dalam talian nombor. Anda mendapat pemenang dan pemain yang berpuas hati. Dan kami gembira kerana kami dapat menggembirakan anda dengan penjana rawak kami.

Kami mempunyai urutan nombor, yang terdiri daripada unsur-unsur yang hampir bebas yang mematuhi pengedaran yang diberikan. Biasanya diagihkan sama rata.

Anda boleh menjana nombor rawak dalam Excel dengan cara dan cara yang berbeza. Mari kita lihat yang terbaik daripada mereka.

Fungsi Nombor Rawak dalam Excel

  1. Fungsi RAND mengembalikan nombor nyata teragih seragam rawak. Ia akan menjadi kurang daripada 1, lebih besar daripada atau sama dengan 0.
  2. Fungsi RANDBETWEEN mengembalikan integer rawak.

Mari kita lihat penggunaannya dengan contoh.

Memilih nombor rawak dengan RAND

Fungsi ini tidak memerlukan sebarang hujah (RAND()).

Untuk menjana nombor nyata rawak antara 1 dan 5, contohnya, gunakan formula berikut: =RAND()*(5-1)+1.

Nombor rawak yang dikembalikan diagihkan sama rata sepanjang selang waktu .

Setiap kali lembaran kerja dikira, atau nilai dalam mana-mana sel dalam lembaran kerja berubah, nombor rawak baharu dikembalikan. Jika anda ingin menyimpan populasi yang dijana, anda boleh menggantikan formula dengan nilainya.

  1. Kami mengklik pada sel dengan nombor rawak.
  2. Serlahkan formula dalam bar formula.
  3. Tekan F9. DAN MASUK.

Mari kita semak keseragaman taburan nombor rawak daripada sampel pertama menggunakan histogram taburan.


Julat nilai menegak ialah kekerapan. Mendatar - "poket".



Fungsi RANDBETWEEN

Sintaks fungsi RANDBETWEEN ialah (batas bawah; sempadan atas). Hujah pertama mestilah kurang daripada yang kedua. Jika tidak, fungsi akan membuang ralat. Sempadan diandaikan sebagai integer. Formula membuang bahagian pecahan.

Contoh penggunaan fungsi:

Nombor rawak dengan ketepatan 0.1 dan 0.01:

Bagaimana untuk membuat penjana nombor rawak dalam Excel

Mari kita buat penjana nombor rawak dengan penjanaan nilai daripada julat tertentu. Kami menggunakan formula seperti: =INDEX(A1:A10;INTEGER(RAND()*10)+1).

Mari kita buat penjana nombor rawak dalam julat dari 0 hingga 100 dengan langkah 10.

Daripada senarai nilai teks anda perlu memilih 2 secara rawak. Menggunakan fungsi RAND, kami membandingkan nilai teks dalam julat A1:A7 dengan nombor rawak.

Mari gunakan fungsi INDEX untuk memilih dua nilai teks rawak daripada senarai asal.

Untuk memilih satu nilai rawak daripada senarai, gunakan formula berikut: =INDEX(A1:A7,RANDBETWEEN(1,COUNT(A1:A7))).

Penjana Nombor Rawak Taburan Biasa

Fungsi RAND dan RANDBETWEEN menghasilkan nombor rawak dengan satu taburan. Sebarang nilai dengan kebarangkalian yang sama boleh jatuh ke dalam had bawah julat yang diminta dan ke dalam had atas. Ternyata spread besar dari nilai sasaran.

Taburan normal bermakna kebanyakan nombor yang dijana adalah hampir dengan sasaran. Mari kita betulkan formula RANDBETWEEN dan buat tatasusunan data dengan taburan normal.

Kos barang X ialah 100 rubel. Keseluruhan kumpulan yang dihasilkan adalah tertakluk kepada taburan normal. Pembolehubah rawak juga mengikut taburan kebarangkalian normal.

Di bawah keadaan sedemikian, nilai purata julat ialah 100 rubel. Mari jana tatasusunan dan bina graf dengan taburan normal dengan sisihan piawai 1.5 rubel.

Kami menggunakan fungsi: =NORMINV(RAND();100;1.5).

Excel mengira nilai mana yang berada dalam julat kebarangkalian. Oleh kerana kebarangkalian menghasilkan produk dengan kos 100 rubel adalah maksimum, formula menunjukkan nilai hampir 100 lebih kerap daripada yang lain.

Mari kita teruskan untuk merancang. Mula-mula anda perlu membuat jadual dengan kategori. Untuk melakukan ini, kami membahagikan tatasusunan kepada noktah:

Berdasarkan data yang diperoleh, kita boleh membentuk gambar rajah dengan taburan normal. Paksi nilai ialah bilangan pembolehubah dalam selang, paksi kategori ialah tempoh.

Penjana nombor dalam talian ialah perkhidmatan tambahan yang agak mudah dan mudah untuk menentukan urutan nombor rawak. "Nombor memerintah dunia," Pythagoras pernah berkata. Malah pada zaman dahulu, orang percaya pada keajaiban nombor. Maka lahirlah ilmu numerologi. Angka membawa orang suka dan duka.
Kami telah membangunkan penjana nombor rawak supaya ia pasti akan menggembirakan setiap pengguna.

Kandungan:

Apakah berdasarkan program pemilihan rawak?

Rawak - diterjemahkan daripada bahasa Inggeris sebagai "rawak". Selalunya, secara kebetulan ajaib, nombor yang dipilih secara tidak sengaja berubah menjadi nombor tiket loteri, nombor anda dalam senarai peserta peraduan.

Di manakah pemilihan rawak digunakan?

Rawak berangka telah meluas:
dalam perniagaan loteri
di kalangan peminat kasino, hippodrome, pelbagai pertandingan sukan
dalam mengendalikan pertandingan sosial. rangkaian

Lukisan nombor rawak dalam talian memastikan pemilihan pemenang yang adil.

Menggunakan perkhidmatan kami dalam loteri, anda boleh mengambil bahagian dalam projek seperti Gosloto 5 daripada 36, ​​7 daripada 49, Stoloto dan lain-lain. Pencinta kasino juga akan menghargai penjana dalam talian kami.

Malangnya, otak manusia sering dapat menduplikasi maklumat, kadang-kadang sukar untuk menghasilkan kombinasi baru. Penjana nombor rawak akan memberitahu anda bagaimana untuk memenangi hadiah yang diidamkan.

Bagaimana untuk memilih penjana nombor

Terdapat banyak perkhidmatan serupa yang ditawarkan dalam talian, tetapi ada 5 sebab untuk memilih penjana nombor rawak RNG di laman web Supergenerators:

  • kesederhanaan dan kemudahan penggunaan
  • pelbagai nombor
  • kemudahan versi mudah alih
  • tiada pautan khusus ke rangkaian sosial
  • arahan yang jelas, antara muka khusus

4 langkah untuk berjaya dengan randomizer kami:

  1. Tentukan julat berangka yang anda ingin dapatkan sampel
  2. Tentukan bilangan nombor keluaran yang dikehendaki
  3. Klik butang "Jana".
  4. Salin jawapan yang diterima dan lompat ke siling untuk kegembiraan!

Dengan Penjana Nombor Super, akan ada lebih banyak detik yang berjaya dalam hidup anda!
Terima kasih kerana memilih percuma kami perkhidmatan dalam talian.
Sentiasa gembira untuk membantu anda dan rakan anda!

Pelbagai loteri, lukisan, dsb. sering diadakan dalam banyak kumpulan atau awam di rangkaian sosial, Instagram, dsb., dan digunakan oleh pemilik akaun untuk menarik khalayak baharu kepada komuniti.

Keputusan cabutan sedemikian sering bergantung pada nasib pengguna, kerana penerima hadiah ditentukan secara rawak.

Untuk penentuan sedemikian, penganjur cabutan hampir selalu menggunakan penjana nombor rawak dalam talian atau prapasang yang diedarkan secara percuma.

Pilihan

Selalunya, sukar untuk memilih penjana sedemikian, kerana fungsinya agak berbeza - untuk sesetengahnya ia sangat terhad, untuk yang lain ia agak luas.

Sebilangan besar perkhidmatan sedemikian sedang dilaksanakan, tetapi kesukarannya ialah ia berbeza dalam skop.

Ramai, sebagai contoh, terikat oleh fungsi mereka kepada yang tertentu rangkaian sosial(contohnya, banyak aplikasi penjana di VKontakte hanya berfungsi dengan pautan dari rangkaian sosial ini).

Penjana paling mudah hanya menjana nombor rawak dalam julat tertentu.

Ini mudah kerana ia tidak mengaitkan hasil dengan siaran tertentu, yang bermaksud bahawa ia boleh digunakan untuk cabutan di luar rangkaian sosial dan dalam pelbagai situasi lain.

Mereka sebenarnya tidak mempunyai kegunaan lain.

<Рис. 1 Генератор>

Nasihat! Apabila memilih penjana yang paling sesuai, adalah penting untuk mempertimbangkan tujuan ia akan digunakan.

Spesifikasi

Untuk proses terpantas memilih perkhidmatan penjanaan nombor rawak dalam talian yang optimum, jadual di bawah menunjukkan yang utama spesifikasi dan kefungsian aplikasi tersebut.

Jadual 1. Ciri-ciri berfungsi permohonan dalam talian untuk menghasilkan nombor rawak
Nama Rangkaian sosial Berbilang hasil Pilih daripada senarai nombor Widget Dalam Talian untuk Laman Web Pilih daripada julat Matikan ulangan
randstuff ya ya Tidak ya Tidak
Banyak Cast Laman web rasmi atau VKontakte Tidak Tidak ya ya ya
Nombor rawak Laman rasmi Tidak Tidak Tidak ya ya
Randomus Laman rasmi ya Tidak Tidak ya Tidak
nombor rawak Laman rasmi ya Tidak Tidak Tidak Tidak

Semua aplikasi yang dibincangkan dalam jadual diterangkan dengan lebih terperinci di bawah.

<Рис. 2 Случайные числа>

randstuff

<Рис. 3 RandStuff>

Anda boleh menggunakan aplikasi ini dalam talian menggunakan pautan ke laman web rasminya http://randstuff.ru/number/.

Ini adalah penjana nombor rawak mudah, dicirikan oleh operasi yang cepat dan stabil.

Ia berjaya dilaksanakan dalam format aplikasi bebas yang berasingan di laman web rasmi, dan sebagai aplikasi dalam rangkaian sosial VKontakte.

Keistimewaan perkhidmatan ini ialah ia boleh memilih nombor rawak kedua-dua dari julat yang ditentukan dan dari senarai nombor tertentu yang boleh ditentukan di tapak.

Kelebihan:

  • Kerja yang stabil dan pantas;
  • Kekurangan pautan terus ke rangkaian sosial;
  • Anda boleh memilih satu atau lebih nombor;
  • Anda hanya boleh memilih daripada nombor yang diberikan.

Kekurangan:

  • Kemustahilan untuk mengadakan cabutan pada VKontakte (ini memerlukan aplikasi berasingan);
  • Aplikasi untuk VKontakte tidak berjalan dalam semua pelayar;
  • Hasilnya kadangkala kelihatan boleh diramal, kerana hanya satu algoritma pengiraan digunakan.

Ulasan pengguna mengenai aplikasi ini adalah seperti berikut: "Kami menentukan pemenang dalam kumpulan VKontakte melalui perkhidmatan ini. Terima kasih”, “Anda adalah yang terbaik”, “Saya hanya menggunakan perkhidmatan ini”.

Banyak Cast

<Рис. 4 Cast Lots>

Aplikasi ini adalah penjana fungsi mudah, dilaksanakan di laman web rasmi, dalam bentuk aplikasi VKontakte.

Terdapat juga widget penjana untuk dibenamkan pada tapak web anda.

Perbezaan utama dari aplikasi yang diterangkan sebelumnya ialah ini membolehkan anda melumpuhkan pengulangan hasilnya.

Iaitu, apabila menjalankan beberapa generasi berturut-turut dalam satu sesi, nombor itu tidak akan berulang.

  • Kehadiran widget untuk diselitkan pada laman web atau blog;
  • Keupayaan untuk melumpuhkan pengulangan keputusan;
  • Kehadiran fungsi "lebih rawak", selepas pengaktifan yang mana algoritma pemilihan berubah.

Negatif:

  • Kemustahilan untuk menentukan beberapa keputusan sekaligus;
  • Ketidakupayaan untuk memilih daripada senarai nombor tertentu;
  • Untuk memilih pemenang secara terbuka, anda mesti menggunakan widget VKontakte yang berasingan.

Ulasan pengguna adalah seperti berikut: "Ia berfungsi dengan stabil, ia agak mudah digunakan", "Fungsi yang mudah", "Saya hanya menggunakan perkhidmatan ini".

Nombor rawak

<Рис. 5 Случайное число>

Perkhidmatan ini terletak di http://random number.rf/.

Penjana mudah dengan fungsi minimum dan ciri tambahan.

Boleh menjana nombor secara rawak dalam julat tertentu (maksimum dari 1 hingga 99999).

Tapak ini tidak mempunyai sebarang reka bentuk grafik, dan oleh itu halaman mudah untuk dimuatkan.

Hasilnya boleh disalin atau dimuat turun dengan mengklik butang.

Negatif:

  • Tiada widget untuk VKontakte;
  • Tidak ada kemungkinan mengadakan cabutan;
  • Tidak ada cara untuk memasukkan hasilnya ke dalam blog atau laman web.

Inilah yang pengguna katakan tentang perkhidmatan ini: "Penjana yang baik, tetapi fungsi tidak mencukupi", "Ciri yang sangat sedikit", "Sesuai untuk menjana nombor dengan cepat tanpa tetapan yang tidak perlu."

Randomus

<Рис. 6 Рандомус>

Anda boleh menggunakan penjana nombor rawak ini di http://randomus.ru/.

Satu lagi yang mudah, tetapi penjana nombor rawak berfungsi.

Perkhidmatan ini mempunyai fungsi yang mencukupi untuk menentukan nombor rawak, namun, ia tidak sesuai untuk mengadakan cabutan dan proses lain yang lebih kompleks.

Negatif:

  • Kemustahilan mengadakan cabutan berdasarkan post repost, dsb.
  • Tiada aplikasi untuk VKontakte atau widget untuk tapak;
  • Tidak mungkin untuk melumpuhkan keputusan berulang.

Pernahkah anda terfikir bagaimana Math.random() berfungsi? Apakah nombor rawak dan bagaimana ia diperoleh? Dan bayangkan soalan semasa temu duga - tulis penjana nombor rawak anda dalam beberapa baris kod. Jadi, apakah itu, kemalangan dan adakah mungkin untuk meramalkannya?

Saya sangat tertarik dengan pelbagai teka-teki dan teka-teki IT, dan penjana nombor rawak adalah salah satu teka-teki sedemikian. Biasanya dalam saluran telegram saya menyusun pelbagai teka-teki dan pelbagai tugasan daripada temuduga. Masalah mengenai penjana nombor rawak telah mendapat populariti yang besar dan saya ingin mengekalkannya di kedalaman salah satu sumber maklumat yang berwibawa - iaitu, di sini di Habré.

Bahan ini akan berguna kepada semua pembangun bahagian hadapan dan pembangun Node.js yang berada di barisan hadapan teknologi dan ingin menyertai projek/permulaan blokchain, di mana soalan tentang keselamatan dan kriptografi, sekurang-kurangnya pada peringkat asas, malah pembangun bahagian hadapan ditanya.

Penjana nombor rawak pseudo dan penjana nombor rawak

Untuk mendapatkan sesuatu secara rawak, kita memerlukan sumber entropi, sumber beberapa jenis huru-hara yang akan kita gunakan untuk menjana rawak.

Sumber ini digunakan untuk mengumpul entropi dan kemudian mendapatkan daripadanya nilai awal (nilai awal, benih), yang diperlukan untuk penjana nombor rawak (RNG) untuk menjana nombor rawak.

Penjana Nombor Rawak Pseudo menggunakan nilai benih tunggal, oleh itu rawak pseudonya, manakala Penjana Nombor Rawak sentiasa menghasilkan nombor rawak, bermula dengan nilai rawak berkualiti tinggi yang diambil daripada pelbagai sumber entropi.

Entropi -  ialah ukuran gangguan. Entropi maklumat ialah ukuran ketidakpastian atau ketidakpastian maklumat.
Ternyata untuk mencipta urutan pseudo-rawak, kita memerlukan algoritma yang akan menghasilkan beberapa jujukan berdasarkan formula tertentu. Tetapi urutan sedemikian boleh diramalkan. Walau bagaimanapun, mari bayangkan bagaimana kita boleh menulis penjana nombor rawak kita sendiri jika kita tidak mempunyai Math.random()

PRNG mempunyai beberapa algoritma yang boleh dihasilkan semula.
RNG - sedang mendapat nombor sepenuhnya daripada sebarang bunyi, keupayaan untuk mengira yang cenderung kepada sifar. Pada masa yang sama, RNG mempunyai algoritma tertentu untuk meratakan pengedaran.

Mencipta algoritma PRNG kami sendiri

Penjana nombor pseudo-rawak (PRNG) ialah algoritma yang menghasilkan urutan nombor yang unsur-unsurnya hampir bebas antara satu sama lain dan mematuhi pengedaran tertentu (biasanya seragam).
Kita boleh mengambil urutan beberapa nombor dan mengambil modulus nombor daripada mereka. Contoh paling mudah yang terlintas di fikiran. Kita perlu memikirkan urutan apa yang perlu diambil dan modul dari apa. Jika hanya terus dari 0 ke N dan modul 2, maka anda mendapat penjana 1 dan 0:

Fungsi* rand() ( const n = 100; const mod = 2; biarkan i = 0; manakala (benar) ( ​​menghasilkan i % mod; jika (i++ > n) i = 0; ) ) biarkan i = 0; untuk (biar x daripada rand()) ( jika (i++ > 100) pecah; console.log(x); )
Fungsi ini menjana untuk kita jujukan 01010101010101 ... dan ia tidak boleh dipanggil rawak semu. Untuk penjana menjadi rawak, ia mesti lulus ujian untuk bit seterusnya. Tetapi kami tidak mempunyai tugas sedemikian. Walau bagaimanapun, walaupun tanpa sebarang ujian, kita boleh meramalkan urutan seterusnya, yang bermaksud bahawa algoritma sedemikian tidak sesuai di dahi, tetapi kita berada di arah yang betul.

Tetapi bagaimana jika kita mengambil beberapa jujukan yang terkenal, tetapi tidak linear, sebagai contoh, nombor PI. Dan sebagai nilai untuk modul, kami tidak akan mengambil 2, tetapi sesuatu yang lain. Anda juga boleh memikirkan tentang perubahan nilai modul. Urutan digit dalam Pi dianggap rawak. Penjana boleh berfungsi menggunakan pi bermula dari beberapa titik yang tidak diketahui. Contoh algoritma sedemikian, dengan urutan berasaskan PI dan perubahan modulo:

Vektor Konst = [...Math.PI.toFixed(48).replace(".","")]; function* rand() ( untuk (biar i=3; i<1000; i++) { if (i >99) i = 2; untuk (biar n=0; n Tetapi dalam JS, nombor PI hanya boleh dipaparkan sehingga 48 aksara dan tidak lebih. Oleh itu, masih mudah untuk meramalkan urutan sedemikian, dan setiap larian penjana sedemikian akan sentiasa menghasilkan nombor yang sama. Tetapi penjana kami telah mula menunjukkan nombor dari 0 hingga 9.

Kami mendapat penjana nombor dari 0 hingga 9, tetapi pengedarannya sangat tidak sekata dan ia akan menjana urutan yang sama setiap kali.

Kita tidak boleh mengambil nombor Pi, tetapi masa dalam perwakilan berangka dan menganggap nombor ini sebagai jujukan digit, dan untuk mengelakkan urutan daripada berulang setiap kali, kita akan membacanya dari akhir. Secara keseluruhan, algoritma kami untuk PRNG kami akan kelihatan seperti ini:

Function* rand() ( biarkan newNumVector = () => [...(+New Date)+""].reverse(); biarkan vektor = newNumVector(); biarkan i=2; manakala (true) ( ​​​​jika ( i++ > 99) i = 2; biarkan n=-1; manakala (++n< vector.length) yield (vector[n] % i); vector = newNumVector(); } } // TEST: let i = 0; for (let x of rand()) { if (i++ >100) rehat; console.log(x) )
Kini ia kelihatan seperti penjana nombor pseudo-rawak. Dan Math.random() -  yang sama ialah PRNG, kita akan membincangkannya sedikit kemudian. Lebih-lebih lagi, setiap kali nombor pertama adalah berbeza.

Sebenarnya pada ini contoh mudah anda boleh memahami cara penjana nombor rawak yang lebih kompleks berfungsi. Dan terdapat juga algoritma siap pakai. Sebagai contoh, mari analisa salah satu daripadanya - ini ialah Linear Congruent PRNG (LCPRNG).

PRNG kongruen linear

PRNG Kongruen Linear (LCPRNG) -  ialah kaedah biasa untuk menjana nombor rawak pseudo. Ia tidak mempunyai kekuatan kriptografi. Kaedah ini terdiri daripada pengiraan sebutan bagi modulo jujukan berulang linear beberapa nombor asli m yang diberikan oleh formula. Urutan yang terhasil bergantung pada pilihan nombor permulaan - i.e. benih. Pada makna yang berbeza benih menghasilkan urutan nombor rawak yang berbeza. Contoh pelaksanaan algoritma sedemikian dalam JavaScript:

Const a = 45; const c = 21; const m = 67; biji varnis = 2; const rand = () => biji = (a * biji + c) % m; untuk(biar i=0; i<30; i++) console.log(rand())
Banyak bahasa pengaturcaraan menggunakan LCPRNG (tetapi bukan hanya algoritma sedemikian (!).

Seperti yang dinyatakan di atas, urutan sedemikian boleh diramalkan. Jadi mengapa kita memerlukan PRNG? Jika kita bercakap tentang keselamatan, maka PRNG adalah masalah. Jika kita bercakap tentang tugasan lain, maka sifat ini  -  boleh memainkan nilai tambah. Sebagai contoh, untuk pelbagai kesan khas dan animasi grafik, anda mungkin perlu memanggil secara rawak dengan kerap. Dan di sini pengagihan nilai dan prestasi adalah penting! Algoritma keselamatan tidak boleh membanggakan kelajuan.

Satu lagi sifat - kebolehulangan. Sesetengah pelaksanaan membolehkan anda menentukan benih, yang sangat berguna jika urutan diulang. Pembiakan diperlukan dalam ujian, sebagai contoh. Dan terdapat banyak perkara lain yang tidak memerlukan RNG yang selamat.

Cara Math.random() berfungsi

Kaedah Math.random() mengembalikan nombor titik terapung pseudo-rawak daripada julat = crypto.getRandomValues(new Uint8Array(1)); log konsol(rvalue)
Tetapi, tidak seperti PRNG Math.random(), kaedah ini sangat intensif sumber. Hakikatnya ialah penjana ini menggunakan panggilan sistem dalam OS untuk mengakses sumber entropi (alamat popi, cpu, suhu, dll ...).


Atas