Beyin Fırtınası İçin Soru (Yazılım/Matematik)
-
cukurova bunu yazdı
Tebrikler 👏👏👏
Aslında soru tamamen matematik, soruyu "bir zarın veya bir bozuk paranın (yazı-tura) hileli olup olmadığını nasıl anlarsınız?" olarak değiştirsem çok daha net olabilirdi.
Cevap; Büyük sayılar yasası (kumarhanede neden her zaman kasanın kazandığını açıklayan yasa)
Mesela; 1 milyon kez yazı/tura attırırım. Çıkan sonuçların %50-%50 yakın olması gerekir.
veya 1 ile 10 arası 1 milyon kez rastgele sayı ürettirirsiniz, 1M/10 = 100k olacağı için her sayının 100k yakın değerlerde çıkmış olmasını beklersiniz. Arada sapma payı her zaman olacaktır.Hızlıca py kendi random generator kullanarak bir örnek vermek gerekirse;
import random liste = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] defa_dene = 1000000 for i in range(defa_dene): x = random.randint(1, 10) liste[x-1] += 1 for i in range(len(liste)): print(i+1, "sayisi = ", "{:,}".format(liste[i]), "kez geldi", ">>>> Beklenen oran %10 =>", '{:.2f}%'.format(liste[i]/defa_dene*100))
Çıktı ;
1 sayisi = 100,034 kez geldi >>>> Beklenen oran %10 => 10.00%
2 sayisi = 99,432 kez geldi >>>> Beklenen oran %10 => 9.94%
3 sayisi = 100,069 kez geldi >>>> Beklenen oran %10 => 10.01%
4 sayisi = 100,210 kez geldi >>>> Beklenen oran %10 => 10.02%
5 sayisi = 99,855 kez geldi >>>> Beklenen oran %10 => 9.99%
6 sayisi = 100,366 kez geldi >>>> Beklenen oran %10 => 10.04%
7 sayisi = 100,314 kez geldi >>>> Beklenen oran %10 => 10.03%
8 sayisi = 99,946 kez geldi >>>> Beklenen oran %10 => 9.99%
9 sayisi = 99,619 kez geldi >>>> Beklenen oran %10 => 9.96%
10 sayisi = 100,155 kez geldi >>>> Beklenen oran %10 => 10.02%Bu sayıların rastgele üretildiği anlamına gelmez. Üretilen sayıların uniform dağılımda olduğunu gösterir. Python random modülünü başka dağılımlarda sayılar üretmek için de kullanabiliriz (örn: random.gauss).
-
evrim ağacı kanalı mıydı neydi buna benzer içerik yapmıştı, rasgele dediğiniz olay aslında rasgele değil pc bi şekildeaynı üretir bilmem ne, gerçekten rasgele olması için alev lambası mı ne varmış onu analiz edip falan bişeyler yapılıyormus cünkü asla aynı alev cıkmıyor muymus neymisti bulabilirsem atacam video.
-
soruyu açıklamak için basit bir örnek verdim ama itirazlar geldi :)
Bir PRNG'nin ilk şartlarından birisi uniform olması beklenir ama tek başına elbette yetmez, ayrıca döğum günü problem (birthday problem test), entropi ölçümü... gibi yüzlerce test mevcut.Baştada söylediğim gibi bilgisayar zar atmaz. Varsayılan olarak Random sınıfı, seed (başlangıç değerini) oluşturmak için genellikle sistem Saatini kullanır ve ürettiği rastgele değerleri oluşturmak için deterministik bir algoritma kullanır. Sonuç olarak, Random sınıfının bir örneği tarafından oluşturulan değerler tahmin edilebilir ve tam olarak rastgele değildir.
Bu nedenlerden kriptoloji de default random kütüphanesi kullanılmaz. Özellikle user token veya private/public keyler üretmek için örneğin C#'da System.Security.Cryptography içindeki RandomNumberGenerator ve Python'da ise secrets kütüphanesinde SystemRandom kullanımı daha uygundur. Yada; testlerden geçmiş güvenilir harici bir PRNG kütüphanesine kullanılabilir. Bunun amaçı genelde farklı diller kullanılan projelerde seed değeri kullanıldığında aynı random sayıyı elde etmektir. Çünkü C# ile python da aynı seed değerini kullansanızda farklı sonuçlar verir.
-
dcpromo bunu yazdı
evrim ağacı kanalı mıydı neydi buna benzer içerik yapmıştı, rasgele dediğiniz olay aslında rasgele değil pc bi şekildeaynı üretir bilmem ne, gerçekten rasgele olması için alev lambası mı ne varmış onu analiz edip falan bişeyler yapılıyormus cünkü asla aynı alev cıkmıyor muymus neymisti bulabilirsem atacam video.
https://youtube.com/shorts/ZuxNOzsl8Ts?si=AIZkwNqk-oitetHF
Bende Şadi evren hoca nın bir videosundan asal sayılarla ilgili bir şey dinlemiştim.
Asal sayı üretip satan şirketler var diyordu.
Akıl sır ermiyor bilgisayar işlerine.
Bin Ali nın dediği gibi çok kafa yorunca sıyırmamak elde değil.
https://youtu.be/Sn7pNTsY5iY?si=3pKRrjqrVkH3jxzS
Edit: sonda dediği gibi hikmetine çok fazla şey yapmamak lazım.
-
fonksiyonlardan 0, 1 sayilari uretelim modla falan, sonra bunlarin ortalama kac adet geldigine bakalim fifty fifty dagilir zaten, sonra 2li gruplarinin kac adet geldigine bakalim yuzde 25 olarak dagilacak hepsi 00, 01, 10, 11. bunu n li gruplarda dagilimlara bakarsak gercek rastgeleyle yari-rastgeleyi ayirabiliriz. Bi diger seyde bu yarirastgele fonksiyonlar hep onceki degeri kullaniyo o yuzden 2^32 sayilik bi loopta donuyolar bkz srand veya drand48
-
Kutuphanelerin biasinin olup olmadigina yogunlasip onlari test ederim derdim heralde