算法导论习题5.1-2
2011-02-12 16:11
204 查看
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int random(int a , int b)
{
int p,m=1; //m用来保存2^p
for(p=0 ; m-1<b-a ; p++) //p是二进制位数
{
m *= 2; //再用m保存十进制的值
}
m = rand()%2;
for(int i=0 ; i<p-1 ; i++)
{
m = m*2+rand()%2;
}
if(m > b-a)
{
return random(a , b);
}
else
{
return m+a;
}
}
int main()
{
int a,b;
cin >> a >>b;//输入3和7
srand(time (0) );
int m;
int three , four , five ,
six , seven;//这几个变量用来统计3,4,5,6,7出现次数
three = four = five =
six = seven=0;
for(int i=0 ; i<1000 ; i++)
{
m = random(a , b);
cout << m << endl;
switch(m)
{
case 3:
three++;break;
case 4:
four++;break;
case 5:
five++;break;
case 6:
six++;break;
case 7:
seven++;
default:break;
}
}
cout << three << ' ' << four
<< ' ' << five << ' ' << six << ' ' <<seven;
return 0;
}
#include <cstdlib>
#include <time.h>
using namespace std;
int random(int a , int b)
{
int p,m=1; //m用来保存2^p
for(p=0 ; m-1<b-a ; p++) //p是二进制位数
{
m *= 2; //再用m保存十进制的值
}
m = rand()%2;
for(int i=0 ; i<p-1 ; i++)
{
m = m*2+rand()%2;
}
if(m > b-a)
{
return random(a , b);
}
else
{
return m+a;
}
}
int main()
{
int a,b;
cin >> a >>b;//输入3和7
srand(time (0) );
int m;
int three , four , five ,
six , seven;//这几个变量用来统计3,4,5,6,7出现次数
three = four = five =
six = seven=0;
for(int i=0 ; i<1000 ; i++)
{
m = random(a , b);
cout << m << endl;
switch(m)
{
case 3:
three++;break;
case 4:
four++;break;
case 5:
five++;break;
case 6:
six++;break;
case 7:
seven++;
default:break;
}
}
cout << three << ' ' << four
<< ' ' << five << ' ' << six << ' ' <<seven;
return 0;
}
相关文章推荐
- 算法导论第三版习题5.1
- 算法导论第十四章习题14.1-7利用顺序统计数统计数组中的逆序数
- 算法导论 习题 15.4.3
- 算法导论学习笔记(3)-习题2.3-7-排序+二分
- 算法导论-9.红黑树习题
- 《算法导论》笔记(17) 所有结点对最短路径 部分习题
- 算法导论课后习题解析 第四章 下
- 《算法导论》习题解答 Chapter 22.1-5(求平方图)
- 算法导论习题:VLSI 芯片测试
- 使用Java完成《算法导论》习题2.3-6
- 《算法导论》第二章----两条习题
- UNIX环境高级编程习题 5.1
- 算法导论习题2.3-4 插入排序递归算法2
- 算法导论 第三章 函数的增长 3.2习题个人解答
- 算法导论 习题6.2-5 用迭代法实现堆排序
- 算法导论课后习题解析 第四章 下
- 算法导论 习题15.4-5 15.4-6 找出一个n个数的序列中最长的单调递增子序列
- 《慕课网玩转算法面试》笔记及习题解答5.1.~5.3
- 算法导论第三版习题7.2
- 算法导论习题解-第22章基本的图算法