Как да изкарвам рандом числа в C# ?


1

Здравейте,

някой може ли да сподели как да изградя хубав рандом метод/цикъл за генериране на числа? Защото с Random rnd = new Random(); нещо не съм доволен колко е рандом :)

Ако някой може да сподели малко знания с невежата ще съм благодарен и ако може споделете пример, защото съм в началото на C#-па :)

Благодаря предварително!




Отговори



2
Здравей,
Бих ти препоръчал първо да видиш малко повече за стандартния Random() метод и как можеш да го използваш със цикли и допълнителни условия, включително математически методи като Math.Truncate(), да можеш да избягаш от предвидимостта на Random генератора, както спомена ти не е съвсем random :). Това е защото е създаден върху математически алгоритъм и при кратко време за изпълнение ще даде повтаряеми резултати, повече за това и разширените basic методи можеш да видиш тук:
https://msdn.microsoft.com/en-us/library/system.random(v=vs.110).aspx

След това като надграждане (защото ти спомена че си още в началото на C#) хвърли поглед на следващия линк, в него засягат по-детайлно употребата на завъртане на цикъл с Random.Next(), друг генератор като RNGCryptoServiceProvider Class и примери за математическата страна включително видео линк за принципа на "Случайността", надявам се да ти бъде интересно:
https://stackoverflow.com/questions/2706500/how-do-i-generate-a-random-int-number-in-c

Сигурен съм че и други колеги ще ти споделят интересни неща по темата.

от tsonko_genov (708 точки)


2
Може да прочетеш малко за Mersenne Twister. Доколкото знам няма готова имплементация в C#. Ще трябва да потърсиш такава или да си напишеш сам.

от cuki (7711 точки)