folder Tahribat.com Forumları
linefolder Programlama Genel
linefolder Beyin Fırtınası İçin Soru (Yazılım/Matematik)



Beyin Fırtınası İçin Soru (Yazılım/Matematik)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cukurova
    cukurova's avatar
    Kayıt Tarihi: 21/Aralık/2003
    Erkek

    İş mülakatında yeni mezun yazılımcılara sorulan bir soru.
    Soru;
    Kodlamadan ve dilden bağımsız olarak, Elimizde 3 tane rastgele sayı üreten (pseudorandom number generator-PRNG) kütüphane var.
    Bunlardan rastgele sayı üretmesini istediğimizde üretiyor fakat bunların gerçekten rastgele sayı üretip üretmediklerini bilmiyoruz. Hatalıda olabilirler.

    Bu kütüphaneleri nasıl test edebilir ve gerçek olanı bulabiliriz.

     

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    "Rastgele" ve "gercekten rastgele" kavramlarını biraz daha açabilir misin?

     

    Kriter mi var?


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cukurova
    cukurova's avatar
    Kayıt Tarihi: 21/Aralık/2003
    Erkek
    ontedi bunu yazdı

    "Rastgele" ve "gercekten rastgele" kavramlarını biraz daha açabilir misin?

     

    Kriter mi var?

    Şimdi bilgisayarlarda gerçek rastgele diye bir kavram yok aslen. Bir takım matematik formulleriyle bu değerleri üretirler. Bilgisayar (ve Tanrı) zar atmaz :)
    Onun için bunlara başında pseudo (sözde/yalancı) eki alır. C#, pyhton, java gibi tamamında ve bütün OS'larda bir rasgele sayı üretici bulunur ve işlerinide gayet iyi yaparlar.

    Peki bunun rastgele olup olmadığını nasıl anlarsın?

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    İlk aklıma gelen şey şu oldu.

    mesela 3 kütüphane de 1 ile 20 arasında sayı üretsin. İlk kütüphane sayı ürettiğinde mesela 16, diğer kütüphanelerin 16'yı tekrar üretmemesini beklerim. Bu biraz daha gerçeklik katar diye düşünüyorum.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Https
    Https's avatar
    Kayıt Tarihi: 05/Ağustos/2017
    Erkek
    cukurova bunu yazdı
    ontedi bunu yazdı

    "Rastgele" ve "gercekten rastgele" kavramlarını biraz daha açabilir misin?

     

    Kriter mi var?

    Şimdi bilgisayarlarda gerçek rastgele diye bir kavram yok aslen. Bir takım matematik formulleriyle bu değerleri üretirler. Bilgisayar (ve Tanrı) zar atmaz :)
    Onun için bunlara başında pseudo (sözde/yalancı) eki alır. C#, pyhton, java gibi tamamında ve bütün OS'larda bir rasgele sayı üretici bulunur ve işlerinide gayet iyi yaparlar.

    Peki bunun rastgele olup olmadığını nasıl anlarsın?

    Okuldaki dersten hatırladığım kadarıyla, rastgele sayı üretmek için en önemli kaynak bilgisayarın saati oluyor. Hatta ödev felanda verilmişti o zamanlar, monte karlo yöntemi felan, da ben pek hatırlamıyorum.

    Zaman noktasında aynı anda çalışacak şekilde farklı makinelerden aynı anda rastgele sayı üretmesi istendiğinde aynı sayıları veriyorsa rastgele değildir, diyebilir miyiz hocam?

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    2021 Talihlisi
    TheAvenqer
    TheAvenqer's avatar
    Kayıt Tarihi: 09/Şubat/2014
    Erkek

    1 ile 10 arasında olacak şekilde çokça rastgele sayı ürettiririm çıkan sonuçta her sayının gelme oranı birbirine yakın ise rastgeledir. Rastgele attığımız sayı yükseldikçe oranlar birbirine dahada yakınlaşır


    Bot ve lisans ihtiyaçlarınız için pm atınız.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Silvanus
    Silvanus's avatar
    Kayıt Tarihi: 28/Nisan/2020
    Erkek
    TheAvenqer bunu yazdı

    1 ile 10 arasında olacak şekilde çokça rastgele sayı ürettiririm çıkan sonuçta her sayının gelme oranı birbirine yakın ise rastgeledir. Rastgele attığımız sayı yükseldikçe oranlar birbirine dahada yakınlaşır

    Hocam başta bende bunu düşündüm ama sıralı üretse sizin dediğiniz oran sağlanmış oluyor ve rasgeleliğ sağlamıyor aslında.

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hypnot1c
    hypnot1c's avatar
    Kayıt Tarihi: 17/Mart/2008
    Erkek

    İlk aklıma gelen 1.000.000 gibi yüksek bir sayıda 1 ile 10 arası sayılar üretip olasılık dağılımlarını incelemek. Olasılık dağılım grafiğine uymayan dizi sayısı rastgele değil derdim fakat biliyorum ki buda soruya %100 bir cevap olamaz. Düşününce insanda rastgele sayı üretebilir. Kasıtlı olarak hep aynı sayıyı ya da sayı dizinini söylemezse. 

    https://medium.com/machine-learning-t%C3%BCrkiye/olas%C4%B1l%C4%B1k-da%C4%9F%C4%B1l%C4%B1mlar%C4%B1-ad58c093d0c

    hypnot1c tarafından 03/Kas/23 09:32 tarihinde düzenlenmiştir

    Nerde o eski minecraftçılar. Unutulmadın X3uqM4 - Tahribatın yanlışlıkla banlanmış en bahtsız müridi. Böyle bir şans nasıl olabilir ? Banlanmış bir üyenin login olmaya çalıştığındaki IP sini sen kalk 1 gün sonra tahribata girerken nasıl denk geldiyse onun IP siyle gir. Bunu bir admin görsün fark etsin ve AB ban ı al şaka gibi :|
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DE5TROY3R
    DE5TROY3R's avatar
    Kayıt Tarihi: 04/Nisan/2007
    Erkek

    1 ile 1 arasında sayı ürettiririm, hata veriyolarsa rastgeledir :D

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cukurova
    cukurova's avatar
    Kayıt Tarihi: 21/Aralık/2003
    Erkek

    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%

     

    cukurova tarafından 03/Kas/23 14:28 tarihinde düzenlenmiştir
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ADSIZ
    ADSIZ's avatar
    Kayıt Tarihi: 21/Eylül/2005
    Erkek
    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 yeterli mi

    Örnek kodunu bir mikroişlemcide çalıştırdım.

    Çıkan sonuç:

    1-99839
    2-100670
    3-100147
    4-100262
    5-99858
    6-100219
    7-99499
    8-99900
    9-99518
    10-100088

    Oranlar %10'a yakın, senin tanımına göre gerçekten rastgele. Mikroişlemciyi resetledim kodu tekrar çalıştırdım


    2. sonuç:

    1-99839
    2-100670
    3-100147
    4-100262
    5-99858
    6-100219
    7-99499
    8-99900
    9-99518
    10-100088

    İkinci sonuca bakınca "gerçekten rastgele" değil. Tabi bu "gerçekten rastgele" tanımına göre değişir.

Toplam Hit: 1606 Toplam Mesaj: 17
yazılım matematik