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.
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.