2015-11-15 2 views
2

Мне нужно написать программу для имитации прокатки двух кубиков и сохранить их сумму в массиве. что частота суммы = 2 & 12 должна быть минимальной, а частота суммы = 7 максимальна. это код, который я написал. мне нужно случайные числа от 2 до 12 с указанной частотойКак я могу установить частоты исходов функции rand() в c

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

int main() 
{ 
    int i, n; 


    n = 5; 
      srand (time(NULL)); 


    for(i = 0 ; i < n ; i++) 
    { 

     printf("%d\n", rand() % 12); 
    } 

    return(0); 
} 
+0

Непросто просто вызвать rand()% 6 + 1 дважды и суммировать результаты? Вы будете симулировать то же самое поведение с гораздо более простой математикой. –

ответ

2

вызовов rand(), чтобы генерировать номер для каждого из 36 пар, а затем вернуть сумму.

int dice2sum(void) { 
    int r = rand()%36; 
    int die1 = r%6 + 1; 
    int die2 = r/6 + 1; 
    return die1 + die2; 
} 
Смежные вопросы