已知rand7(),求rand10()
2011-10-09 18:17
155 查看
想这个也想了比较多,一般的思路就是相加,相加多少,但是还是感觉争议很大。在论坛上,也没有细看大师们的解答,自己今天的状态不好,晕。
所以,这里只是贴出我的代码,记录下。欢迎大牛指教!
貌似rand()函数也不是绝对的随机的。
所以,这里只是贴出我的代码,记录下。欢迎大牛指教!
#include <stdio.h> #include <stdlib.h> #include <time.h>
int rand7(); int rand10();
int main(void) { int i; int a[10]={0,};
srand((unsigned int)time(NULL));
for(i = 0;i < 10000;i++) { a[rand10()-1]++; }
for(i=0;i<10;i++) { printf("%4d ",a[i]); printf("%s\n","numbers"); } return 0; }
int rand7() { int temp = rand() % 7 +1 ; return temp; }
int rand10() { int temp ; int xi; while((temp = rand7()) < 6) ; if(temp >= 6) { if(temp == 6) xi = 1; else xi = 0; while((temp = rand7())>5) ; } if(xi == 1) return temp; else return temp + 5; }
貌似rand()函数也不是绝对的随机的。
相关文章推荐
- 腾讯笔试之“已知rand7()可以产生1~7的7个数(均匀概率),利用rand7() 产 生 rand10() 1~10(均匀概率)。”
- 已知rand7(),求rand10().
- 题目:已知rand7() 可以产生 1~7 的7个数(均匀概率),利用rand7() 产生rand10() 1~10(均匀概率)
- 用rand7()构造rand10()
- 随机数:关于用Rand7生成Rand10的最准确的算法(MS中的一道题)--仿真证明
- 利用rand7()构造rand10()
- 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10。
- 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10
- 由rand7生成rand10以及随机数生成方法的讨论
- 随机数范围扩展(如rand7()到rand10())(转)
- 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10
- 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10()
- 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10
- 【每天学点算法题10.16】由rand7()生成rand10()
- 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10
- 面试:关于rand7()构造rand10()的问题
- [LeetCode] Implement Rand10() Using Rand7() 使用Rand7()来实现Rand10()
- 由rand7生成rand10以及随机数生成方法的讨论
- 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10
- 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10