• 28-05-2020, 16:23:23
    #1
    Selamun aleykum, inşallah doğru kategoridedir.

    Bir olasılık, şans algoritması kodlamam lazım. Unity C# çalışıyorum. (ŞANS OYUNU DEĞİLDİR)

    Yüzdelik bir ihtimale göre karakterin karşısına altın çıkarmam lazım. Aklıma gelen ve bulabildiğim en iyi ihtimal, random.range ile 0-10 arasında bir değer döndürüp swich metodu ile her rakamı kontrol ediyorum. 1 gelirse altını göster diyorum. Suanda diğer 9 ihtimal boşta, yani bir şey döndermiyor.

    Ama random.range sandığımız gibi çalışmıyor galiba. 20 defa değer döndürdüm hiç altın göstermedi. Bu ihtimale göre 10 da 1 yani %10 ihtimalle altını göstermesi lazımdı. 20 defa çalıştırınca 2 defa görünmesi lazımdı altının ama hiç görünmedi. Bazen de 10 defa çalıştınca 3-4 defa altın çıkabiliyor. Random mantığı yüzdelik ihtimal için uygun değil gibi.

    Nasıl bir yontem kullanabiliriz? C# da ihtimal belirlemek için özel bir yapı var mı? Yoksa nasıl bir algoritma yapabiliriz?
  • 28-05-2020, 16:26:50
    #2
    https://docs.microsoft.com/en-us/dot...ew=netcore-3.1
    System.Security.Cryptography.RandomNumberGenerator kullanabilirsin linkte dökğmanı var
  • 28-05-2020, 16:27:59
    #3
    Bence mantıkı olan 100 adet değer olan ve sizin belirlediğiniz yüzde adedinde 1 olan ve kalan kadar 0 olan arrayden random değer getirip bunun 1/0 durumuna göre eğer yazmanız 1-10 arası random sayıdan daha mantıklı olur çünkü 5 kere üst üste çekip 5 ininde 6 gelme yada 1 gelme ihtimali var
    mfa95 adlı üyeden alıntı: mesajı görüntüle
    Selamun aleykum, inşallah doğru kategoridedir.

    Bir olasılık, şans algoritması kodlamam lazım. Unity C# çalışıyorum. (ŞANS OYUNU DEĞİLDİR)

    Yüzdelik bir ihtimale göre karakterin karşısına altın çıkarmam lazım. Aklıma gelen ve bulabildiğim en iyi ihtimal, random.range ile 0-10 arasında bir değer döndürüp swich metodu ile her rakamı kontrol ediyorum. 1 gelirse altını göster diyorum. Suanda diğer 9 ihtimal boşta, yani bir şey döndermiyor.

    Ama random.range sandığımız gibi çalışmıyor galiba. 20 defa değer döndürdüm hiç altın göstermedi. Bu ihtimale göre 10 da 1 yani %10 ihtimalle altını göstermesi lazımdı. 20 defa çalıştırınca 2 defa görünmesi lazımdı altının ama hiç görünmedi. Bazen de 10 defa çalıştınca 3-4 defa altın çıkabiliyor. Random mantığı yüzdelik ihtimal için uygun değil gibi.

    Nasıl bir yontem kullanabiliriz? C# da ihtimal belirlemek için özel bir yapı var mı? Yoksa nasıl bir algoritma yapabiliriz?
  • 28-05-2020, 16:29:36
    #4
    hkafali adlı üyeden alıntı: mesajı görüntüle
    https://docs.microsoft.com/en-us/dot...ew=netcore-3.1
    System.Security.Cryptography.RandomNumberGenerator kullanabilirsin linkte dökğmanı var
    Kripto için kullanılıyor yazıyor hocam. Bu performansı ciddi anlamda etkiler diye düşünüyorum. Ayrıca random.range ile farkı nedir acaba? İhtimal algoritmasına ne gibi yardımcı olur? Teşekkürler
  • 28-05-2020, 16:38:03
    #5
    mfa95 adlı üyeden alıntı: mesajı görüntüle
    Selamun aleykum, inşallah doğru kategoridedir.

    Bir olasılık, şans algoritması kodlamam lazım. Unity C# çalışıyorum. (ŞANS OYUNU DEĞİLDİR)

    Yüzdelik bir ihtimale göre karakterin karşısına altın çıkarmam lazım. Aklıma gelen ve bulabildiğim en iyi ihtimal, random.range ile 0-10 arasında bir değer döndürüp swich metodu ile her rakamı kontrol ediyorum. 1 gelirse altını göster diyorum. Suanda diğer 9 ihtimal boşta, yani bir şey döndermiyor.

    Ama random.range sandığımız gibi çalışmıyor galiba. 20 defa değer döndürdüm hiç altın göstermedi. Bu ihtimale göre 10 da 1 yani %10 ihtimalle altını göstermesi lazımdı. 20 defa çalıştırınca 2 defa görünmesi lazımdı altının ama hiç görünmedi. Bazen de 10 defa çalıştınca 3-4 defa altın çıkabiliyor. Random mantığı yüzdelik ihtimal için uygun değil gibi.

    Nasıl bir yontem kullanabiliriz? C# da ihtimal belirlemek için özel bir yapı var mı? Yoksa nasıl bir algoritma yapabiliriz?
    Burda atladığınız nokta her seferinde %10 şansla altın çıkabilir. Yani 100 kutu açtım 10 kez garanti çıkması gerekli diyorsanız algoritmanızı farklı kurmanız gerekli.
    Basit bir örnekle açıklamaya çalışsayım.

    %10 ihtimalle kesin olarak çıkmasını istiyorsanız her çıkmadığında olasılığı arttırmanız gerekli. Yanı 8 kez attı ve çıkmadı 9. atışta %50 şansla çıkması 10. atışta %100 çıkması gerekli. Sizin mevcuttaki algoritmanızda her çalıştırıldığında %10 şansla altın çıkabilir.