采用2个[1,5]的随机数生成器,这样一共可以产生5x5=25种结果,此时可以每3个编码代表新的[1,7]之中的一个数字,最后的4位去除。我这边采用的每3个表示同一个[1,7]的数字,最后多出来的4个数字全部表示7。开始上代码:
#include"stdio.h"
#include"stdlib.h"
#include"time.h"
//用[1,5]的随机数生成[1,7]的随机数
int main()
{
int m, n, p;
srand(time(NULL));
m = rand() % 5 + 1;
n = rand() % 5 + 1;
printf("生成的第一个1-5的随机数是:%d\n", m);
printf("生成的第二个1-5的随机数是:%d\n", n);
p = (m - 1) * 5 + n - 1;
if (p / 3 <= 6)printf("生成的随机数是:%d\n", p / 3 + 1);
else printf("生成的随机数是:7\n");
system("pause");
return 0;
}