Rasgele sayı uretmek

Başlatan Hadi, 05 Mart 2015, 19:03:58

Hadi

Merhaba arkadaşlar.
Programda rasgele ( Random ) sayı üretmem lazım. Bir fikri olan var mı?

Şimdiden teşekkürler.  :)

baran123

Buton arkı iş görür, yada rassal sayı üretme algoritmalarını araştırabilirsin.

alicavuslu

Örneğin her saat darbesinde bir sayacını bir arttır ve rast gele sayı üretmek istediğin andaki değeri bir sabit ile çarpıp başka bir sabit değeri ile topla. Yani X(t) = aX(t-1) + b şeklinde. a ve b değerlerini istersen zamanla güncelleyebilirsin.

Gökhan BEKEN

ADC gürültüsü, mikrofon gürültüsü vs
Özel mesaj okumuyorum, lütfen göndermeyin.

Hadi

Alıntı yapılan: alicavuslu - 05 Mart 2015, 21:54:30
Örneğin her saat darbesinde bir sayacını bir arttır ve rast gele sayı üretmek istediğin andaki değeri bir sabit ile çarpıp başka bir sabit değeri ile topla. Yani X(t) = aX(t-1) + b şeklinde. a ve b değerlerini istersen zamanla güncelleyebilirsin.

Ama bu her zaman ayni sayıyı üretmez mi? Yani mikroyu her çalıştırdığımda alınan değerler önceki alınan değerler ile aynı olur.

MrDarK

Random için bir taktik de ben vereyim, eğer random sayıya ihtiyacın olduğu zaman dilimi de randomsa, yani herhangi bir anda herhangi bir değer istenebilir gibi bir durumsa bir tane timer kurarsın 0-65535 arası sayan veya sınırlarsın, random andaki timer içindeki sayıyı kullanabilirsin. Buda bir miktar randomluk verir sana :) Ne randommuş arkadaş
Picproje Eğitim Gönüllüleri ~ MrDarK

alicavuslu

Tohum değerini sabit tutar ise dediğin gibi her seferinde aynı sayıyı verir. Bende özellikle sana tohum değerini sayaca bağlamanı önerdim. Yani sayı üretmeye enerji aldığı andan itibaren değil. Senin verdiğin aktif sinyalinden sonra tohum değerini üretecek ve bu tohum değeri ile yeni sayıyı üretebileceksin. Olasılığı arttırmak için ise a ve b parametrelerinide her seferinde farklı işlemlere tabi tutarak (örneğin xor) güncelleme yapabilirsin.


mufitsozen

Alıntı yapılan: Hadi - 06 Mart 2015, 08:11:30
Ama bu her zaman ayni sayıyı üretmez mi? Yani mikroyu her çalıştırdığımda alınan değerler önceki alınan değerler ile aynı olur.

sayin @hadi kardesim mikrolar deterministik makinalardir, random kelime anlami "happening, or chosen without method or conscious decision." turkcesi "rastgele, tesadufu" demek. Bu yuzden disardan bir random parametre bulmazsan her seferinde ayni sayi cikar. John von Neumann bu konuda "Any one who considers arithmetical methods of producing random digits is, of course, in a state of sin." demistir.

Gercekten random bir dizi yaratmak icin Mikroya disardan bir rastgele sinyal vermenin disinda yol yoktur. Onun disinda "pseudorandom" yontemler zaafiyetleri bilinerek kullanilmalidir.

Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

Hadi

Herkese çok teşekkür ederim, tavsiyelerinize uyacağım.