Öncelikle skype altyapısını araştırırken dev/random la karşılaştım. İnceledim ve size de anlatmak istedim.
Öncelikle c# da anlatayım.
Random değişkenini bilirsiniz Random rnd = new Random(); diye tanımlanır fakat bu sistem
Cryptography clasını kullanıyor. Öncelikle import bölümüne ekleyelim
using System.Security.Cryptography;
Sonra ise fonksiyon olarak yazalım ve her satırı tek tek açıklayayım
private static int DevRandomUret() { int Sonuc = 0; RNGCryptoServiceProvider RandomNumaraOlusturucu = new RNGCryptoServiceProvider();//cryptoservisten RandomNumberGenerator ile değişkenimizi oluşturduk var tampon = new byte[4];//rasgele sayımızın byte değerlerine ulaşmak için byte dizesi oluşturduk RandomNumaraOlusturucu.GetBytes(tampon);//rasgele sayımızı byte türüne çevirdik ve tampona aktardık Sonuc = BitConverter.ToInt32(tampon, 0);//bitconverter clası ile de byte dizisini integere çevirip sonuç değişkenine atadık.(Byte Converter Hk Bilgi istiyorsanız http://tr.wikibooks.org/wiki/C_Sharp_Programlama_Dili/System_isim_alan%C4%B1#BitConverter_s.C4.B1n.C4.B1f.C4.B1 ) Adresini ziyaret edin. return Sonuc; // Sonuc Değişkenini geri döndürdük. }
Fonksiyonu yazdıktan sonra konsolda ekrana vermesi kaldı onun için de
Console.WriteLine(DevRandomUret().ToString());
yazmanız yeterli olacaktır. C# olarak güzel bir kod blogu. Projelerinizde uygulamanızı tavsiye ederim. Ancak ekrana verdiği değer büyük boyutta ise mod alma işlemi ile sonuç döndürebilirsiniz.
Pythona gelecek olursak aslında pythonda kullandığımız random değişkeni direk urandom türünde olduğu için çok basittir. direk kodlarla anlatayım isterseniz
Önce random clasını import ediyoruz.
sonra değişkene random clasını aktarıyoruz.
en son satırda da random sayıyı üretiyoruz. Print deyerek de yazabilirsiniz.
import random rand = random.SystemRandom() rand.randint(1,10)
Hiç yorum yok:
Yorum Gönder