C dilinde olasılığa göre rastgele sayı oluşturma

BerkayBilgin1

Hectopat
Katılım
18 Kasım 2019
Mesajlar
383
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Merhaba, benim şöyle bir sorum var C dilinde bildiğiniz gibi rand() fonksiyonuyla rastgele sayı oluşturuyoruz ama bu sayılar tam anlamıyla rastgele geliyor mesela 1-30 arası sayı istenirse bize rastgele olasılıkla sayılar geliyor. Ben şunu istiyorum mesela bu sayılar arasından benim seçtiğim sayıların gelme olasılığı daha fazla olsun. Sallıyorum 10 sayısı %60 daha fazla gelsin. Bunu C dilinde yapmanın bir yolu var mı? Diğer dillerde oluyorsa onu da atabilirsiniz ama diğer dillerde bilgim biraz az bu yüzden eğer farklı bir dildeyse anlatarak yazarsanız sevinirim.
 
Eğer 5 sayısının daha fazla ihtimali olmasını istiyorsanız, rand() fonksiyonunu kullanarak ürettiğiniz sayıların dağılımını değiştirebilirsiniz. Örneğin, aşağıdaki kod, 0 ile 9 arasında bir sayı üretecek ancak 5 sayısının daha fazla ihtimali olacak şekilde dağıtılmış olacaktır:

C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) {
  // Rastgele sayı üreteci için bir seme girin
  srand(time(NULL));

  // 0 ile 9 arasında bir sayı üretin ve 5 sayısının daha fazla ihtimali olmasını sağlayın
  int random_number = rand() % 10;
  if (random_number > 5) {
    random_number = rand() % 5;
  }

  printf("Rastgele sayı: %d\n", random_number);

  return 0;
}

Bu kod, 0 ile 5 arasında bir sayı üretecektir ve bu sayıların %50'si 5 olacaktır. Eğer daha farklı bir dağılım istiyorsanız, kodu değiştirerek istediğiniz dağılımı elde edebilirsiniz.
 
Anladım yani doğrudan bir ön tanımlı fonksiyon yok kendimiz kullanıcı tanımlı yapabiliyoruz. Teşekkürler cevap için.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…