c语言中如何产生一定比例的随机数?
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/10 21:19:39
c语言中如何产生一定比例的随机数?
比如 想产生100个随机数 其中10个-1 50个0 40个1 ,这10个-1、50个0、40个1要均匀散开到这100个数里面去 不能扎堆.听说 rate 能实现 求指导
比如 想产生100个随机数 其中10个-1 50个0 40个1 ,这10个-1、50个0、40个1要均匀散开到这100个数里面去 不能扎堆.听说 rate 能实现 求指导
说明:
我原来做扑克牌游戏的时候,洗牌和你是类似的.
最笨的方法.数组开始赋初值 10个-1,50个0,40个1
然后随机产生2个数,将数组着两个位置的元素交换. 交换100次就可以了.
测试效果:
0 -1 0 0 1 0 0 1 1 1
0 0 0 0 0 0 -1 1 1 0
0 0 -1 1 0 1 0 1 1 -1
0 0 0 0 0 0 0 0 0 0
1 0 0 0 -1 1 0 -1 0 -1
0 1 0 1 1 0 0 -1 0 0
1 1 0 1 1 1 1 1 -1 -1
1 0 1 0 1 0 1 1 0 0
1 0 0 1 1 1 1 1 1 1
1 0 1 0 0 0 1 1 0 1
1 -1 0 -1 1 0 1 0 0 1
0 0 0 0 0 0 1 0 0 0
0 1 -1 -1 0 0 1 1 0 0
0 0 0 0 1 0 0 0 -1 0
0 0 1 1 1 0 1 0 1 1
1 0 1 1 1 0 1 0 0 1
1 0 1 -1 1 1 0 1 0 0
1 1 0 1 0 1 0 0 0 1
1 0 1 1 0 1 0 1 -1 0
1 -1 -1 1 0 -1 1 0 1 0
源代码:
#include "stdio.h"
#include "conio.h"
#include
#include
#include
main()
{
int i,m=0,n=0,temp=0;
int a[100];
time_t t;
srand((unsigned)time(&t));
for(i=0;i
我原来做扑克牌游戏的时候,洗牌和你是类似的.
最笨的方法.数组开始赋初值 10个-1,50个0,40个1
然后随机产生2个数,将数组着两个位置的元素交换. 交换100次就可以了.
测试效果:
0 -1 0 0 1 0 0 1 1 1
0 0 0 0 0 0 -1 1 1 0
0 0 -1 1 0 1 0 1 1 -1
0 0 0 0 0 0 0 0 0 0
1 0 0 0 -1 1 0 -1 0 -1
0 1 0 1 1 0 0 -1 0 0
1 1 0 1 1 1 1 1 -1 -1
1 0 1 0 1 0 1 1 0 0
1 0 0 1 1 1 1 1 1 1
1 0 1 0 0 0 1 1 0 1
1 -1 0 -1 1 0 1 0 0 1
0 0 0 0 0 0 1 0 0 0
0 1 -1 -1 0 0 1 1 0 0
0 0 0 0 1 0 0 0 -1 0
0 0 1 1 1 0 1 0 1 1
1 0 1 1 1 0 1 0 0 1
1 0 1 -1 1 1 0 1 0 0
1 1 0 1 0 1 0 0 0 1
1 0 1 1 0 1 0 1 -1 0
1 -1 -1 1 0 -1 1 0 1 0
源代码:
#include "stdio.h"
#include "conio.h"
#include
#include
#include
main()
{
int i,m=0,n=0,temp=0;
int a[100];
time_t t;
srand((unsigned)time(&t));
for(i=0;i