Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Кездейсоқ сандар генераторлары физика, инженерия, математикалық компьютерлік зерттеулер (мысалы, Монте-Карло симуляциялары), криптография және құмар ойындары (ойын серверлерінде) сияқты көптеген техникалық қолданыстарда маңызды рөл атқарады. Бұл тізімге сапасы мен нақты қолданылу жағдайына сәйкестігіне қарамастан, көптеген әртүрлі типтер кіреді.
none
Random number generators are important in many kinds of technical applications, including physics, engineering or mathematical computer studies (e. g., Monte Carlo simulations), cryptography and gambling (on game servers). This list includes many common types, regardless of quality or applicability to a given use case.
Псевдосумалық сандар генераторлары (PRNG)
Келесі алгоритмдер псевдокездейі сан генераторлары болып табылады. GeneratorDateБірінші қолданушыларReferencesNoteОрталық квадрат әдісі1946J. фон Нейман Түпнұсқалық түрі нашар сапалы және тек тарихи қызығушылық тудырады. Лемер генераторы1951D. H. Lehmer Ең ерте және ең ықпалды дизайннің бірі. Сызықтық конгруенциялық генератор (LCG)1958W. E. Thomson; A. Rotenberg Лемер генераторының жалпылауы және тарихи тұрғыдан ең ықпалды және зерттелген генератор. Лагг Фибоначчи генераторы (LFG)1958G. J. Mitchell және D. P. MooreСызықтық кері байланыс тізбегі (LFSR)1965R. C. Tausworthe Өте ықпалды дизайн. Сондай-ақ, Таусворт генераторлары деп аталады. Вихманн-Хилл генераторы1982B. A. Wichmann және D. I. Hill 16 биттік процессорларға арналған үш кішкентай LCG-нің комбинациясы. Көптеген бағдарламаларда кеңінен қолданылады, мысалы, Excel 2003 және одан кейінгі нұсқаларында Excel RAND функциясы үшін қолданылады және ол Python тілінде 2.2 нұсқасына дейін әдепкі генератор болды. 30 ережесі1983S. Wolfram Ұяшық автоматтарға негізделген. Инверсиялық конгруенциялық генератор (ICG)1986J. Eichenauer және J. LehnBlum Blum Shub1986M. Blum, L. Blum және M. ShubBlum Blum Shub – криптографиялық тұрғыдан қауіпсіз деп саналатын PRNG алгоритмі. Оның негізі алғашқы сандарға негізделген. Парк-Миллер генераторы1988S. K. Park және K. W. Miller Лемер генераторының нақты іске асырылуы, кеңінен қолданылады, өйткені ол C++-қа C++11 нұсқасынан бастап minstd_rand0 функциясы ретінде қосылған. ACORN генераторы1989 (ашылған 1984) R. S. Wikramaratna Аддитивті конгруенциялық кездейі сан генераторы. Оңай іске асыруға болады, жылдам, бірақ кеңінен танымал емес. Тиісті инициализациямен, қазіргі барлық эмпирикалық тесттерден өтеді және формалды түрде конвергенциясы дәлелденген. Кез келген кезеңге оңай кеңейтілуге болады және жоғары өлшемдерде және жоғары дәлдікпен статистикалық өнімділікті жақсартады. MIXMAX генераторы1991G. K. Savvidy және N. G. Ter Arutyunyan Savvidy Бұл матрицалық сызықтық конгруенциялық генераторлар класының мүшесі, LCG-нің жалпылауы. MIXMAX генераторлар отбасының негізі эргодикалық теория мен классикалық механиканың нәтижелеріне негізделген. Қосумен тасымалдау (AWC)1991G. Marsaglia және A. Zaman Лагг Фибоначчи генераторларының модификациясы. Қарыз алумен шегеру (SWB)1991G. Marsaglia және A. Zaman Бөлшектер физикасының симуляциялары үшін кеңінен қолданылады. Максималды кезеңді өзара байланыстар1992R. A. J. Matthews Сандар теориясының тамырлары бар әдіс, бірақ практикалық қолданыста ешқашан қолданылмаған. KISS1993G. Marsaglia Комбинациялық генератордың прототиптік мысалы. Көбейтумен тасымалдау (MWC)1994G. Marsaglia; C. Koç Толықтырылған көбейтумен көбейту (CMWC)1997R. Couture және P. L’EcuyerМерсенн Твистері (MT)1998M. Matsumoto және T. Nishimura LFSR-мен тығыз байланысты. MT19937 іске асырылуында, бәлкім, ең көп қолданылатын қазіргі заманғы PRNG. R және Python тілінде 2.3 нұсқасынан бастап әдепкі генератор. Xorshift2003G. Marsaglia Бұл LFSR генераторларының өте жылдам түрі. Марсалья сондай-ақ, жақсарту ретінде xorwow генераторын ұсынды, онда xorshift генераторының шығысы Вейль тізбегімен қосылады. xorwow генераторы – графикалық өңдеу бірліктері үшін nVidia CUDA қолданбалы бағдарламалау интерфейсінің CURAND кітапханасындағы әдепкі генератор. Жақсы тең үлестірілген ұзақ кезеңді сызықтық (WELL)2006F. Panneton, P. L'Ecuyer және M. Matsumoto Мерсенн Твистерімен тығыз байланысты LFSR, оның кейбір кемшіліктерін жоюға бағытталған. Кішкентай криптографиялық емес PRNG (JSF)2007Bob JenkinsAdvanced Randomization System (ARS)2011J. Salmon, M. Moraes, R. Dror және D. Shaw AES блок шифрының оңайлатылған нұсқасы, бұл AES NI-ді қолдайтын жүйелерде өте жылдам орындалуға мүмкіндік береді. Threefry2011J. Salmon, M. Moraes, R. Dror және D. Shaw Шеңберлі емес псевдокездейі сан генераторлары, шексіз сөздер техникасына негізделген. SplitMix2014G. L. Steele, D. Lea және C. H. Flood MurmurHash3 соңғы араластыру функциясының негізінде. Java Development Kit 8 және одан жоғары нұсқаларына қосылған. Пермутацияланған конгруенциялық генератор (PCG)2014M. E. O'Neill LCG-нің модификациясы. Кездейі циклды бит генераторы (RCB)2016R. CookmanRCB – бұл Мерсенн Твистерінің кейбір кемшіліктерін жоюға және ауысу/модуль генераторларының қысқа кезеңдері/бит ұзындығы шектеулерін жеңуге арналған бит үлгісінің генераторы. Ортаңғы квадратты Вейль тізбегі RNG (сонымен қатар ортаңғы квадратты әдіс қараңыз)2017B. Widynski Джон фон Нейманның бастапқы ортаңғы квадраттық әдісінің өзгеруі, бұл генератор барлық статистикалық тесттерден өте алатын ең жылдам RNG болуы мүмкін. Xoroshiro128+2018D. Blackman, S. Vigna Марсальяның Xorshift генераторларының модификациясы, қазіргі 64 биттік процессорлардағы ең жылдам генераторлардың бірі. Қатысты генераторларға xoroshiro128**, xoshiro256+ және xoshiro256** кіреді. 64 биттік MELG (MELG 64)2018S. Harase, T. Kimoto Мерсенн жай кезеңімен 64 биттік максималды тең үлестірілген F2 сызықтық генераторларының іске асырылуы. Squares RNG2020B. Widynski Ортаңғы квадратты Вейль тізбегі RNG-нің санамалы нұсқасы. Philox сияқты дизайнға ие, бірақ айтарлықтай жылдам.
The following algorithms are pseudorandom number generators. GeneratorDateFirst proponentsReferencesNotesMiddle square method1946J. von NeumannIn its original form, it is of poor quality and of historical interest only. Lehmer generator1951D. H. LehmerOne of the very earliest and most influential designs. Linear congruential generator (LCG)1958W. E. Thomson; A. Rotenberg A generalisation of the Lehmer generator and historically the most influential and studied generator. Lagged Fibonacci generator (LFG)1958G. J. Mitchell and D. P. MooreLinear feedback shift register (LFSR)1965R. C. TauswortheA hugely influential design. Also called Tausworthe generators. Wichmann–Hill generator1982B. A. Wichmann and D. I. HillA combination of three small LCGs, suited to 16 bit CPUs. Widely used in many programs, e. g. it is used in Excel 2003 and later versions for the Excel function RAND and it was the default generator in the language Python up to version 2.2. Rule 301983S. WolframBased on cellular automata. Inversive congruential generator (ICG)1986J. Eichenauer and J. LehnBlum Blum Shub1986M. Blum, L. Blum and M. ShubBlum Blum Shub is a PRNG algorithm that is considered cryptographically secure. Its base is based on prime numbers. Park Miller generator1988S. K. Park and K. W. MillerA specific implementation of a Lehmer generator, widely used because it is included in C++ as the function minstd rand0 from C++11 onwards. ACORN generator1989 (discovered 1984) R. S. WikramaratnaThe Additive Congruential Random Number generator. Simple to implement, fast, but not widely known. With appropriate initialisations, passes all current empirical test suites, and is formally proven to converge. Easy to extend for arbitrary period length and improved statistical performance over higher dimensions and with higher precision. MIXMAX generator1991G. K. Savvidy and N. G. Ter Arutyunyan SavvidyIt is a member of the class of matrix linear congruential generator, a generalisation of LCG. The rationale behind the MIXMAX family of generators relies on results from ergodic theory and classical mechanics. Add with carry (AWC)1991G. Marsaglia and A. ZamanA modification of Lagged Fibonacci generators. Subtract with borrow (SWB)1991G. Marsaglia and A. Zaman widely used e. g. for particle physics simulations. Maximally periodic reciprocals1992R. A. J. MatthewsA method with roots in number theory, although never used in practical applications. KISS1993G. MarsagliaPrototypical example of a combination generator. Multiply with carry (MWC)1994G. Marsaglia; C. KoçComplementary multiply with carry (CMWC)1997R. Couture and P. L’EcuyerMersenne Twister (MT)1998M. Matsumoto and T. NishimuraClosely related with LFSRs. In its MT19937 implementation is probably the most commonly used modern PRNG. Default generator in R and the Python language starting from version 2.3. Xorshift2003G. MarsagliaIt is a very fast sub type of LFSR generators. Marsaglia also suggested as an improvement the xorwow generator, in which the output of a xorshift generator is added with a Weyl sequence. The xorwow generator is the default generator in the CURAND library of the nVidia CUDA application programming interface for graphics processing units. Well equidistributed long period linear (WELL)2006F. Panneton, P. L'Ecuyer and M. MatsumotoA LFSR closely related with Mersenne Twister, aiming at remedying some of its shortcomings. A small noncryptographic PRNG (JSF) 2007Bob JenkinsAdvanced Randomization System (ARS)2011J. Salmon, M. Moraes, R. Dror and D. ShawA simplified version of the AES block cipher, leading to very fast performance on systems supporting the AES NI. Threefry2011J. Salmon, M. Moraes, R. Dror and D. ShawAperiodic pseudorandom number generators based on infinite words technique. SplitMix2014G. L. Steele, D. Lea and C. H. FloodBased upon the final mixing function of MurmurHash3. Included in Java Development Kit 8 and above. Permuted Congruential Generator (PCG)2014M. E. O'NeillA modification of LCG. Random Cycle Bit Generator (RCB)2016R. CookmanRCB is described as a bit pattern generator made to overcome some of the shortcomings with Mersenne Twister and short periods/bit length restriction of shift/modulo generators. Middle Square Weyl Sequence RNG (see also middle square method)2017B. WidynskiA variation on John von Neumann's original middle square method, this generator may be the fastest RNG that passes all the statistical tests. Xoroshiro128+2018D. Blackman, S. VignaA modification of Marsaglia's Xorshift generators, one of the fastest generators on modern 64 bit CPUs. Related generators include xoroshiro128**, xoshiro256+ and xoshiro256**.64 bit MELG (MELG 64)2018S. Harase, T. KimotoAn implementation of 64 bit maximally equidistributed F2 linear generators with Mersenne prime period. Squares RNG2020B. WidynskiA counter based version of Middle Square Weyl Sequence RNG. Similar to Philox in design but significantly faster.