注册 登录
编程论坛 新人交流区

0、1随机数

xiefarong 发布于 2007-10-30 23:04, 433 次点击

怎样产生0\1随机数,0占70%,1占30%?
产生随机数后放至10x10数组中。请高手回答,谢谢!

4 回复
#2
wangtianhong2007-11-01 20:07
你是指0\1出现的概率是0占70%,1占30%?还是在10x10数组中,0占70%,1占30%?
不明白你的PROBLEM!
#3
toutou12312007-11-01 20:10

一般都有 随即函数的 产生的数为0-1内 你把这个数 X 100 0-70 等于0 70-100等于1 就可以了

#4
cosdos2007-11-02 00:28

产生100个数字 0 占 70%

麻烦啊

#5
cosdos2007-11-02 01:16

/* C 程序,用一个函数是产生的数 30% 是 1 。
int nn_rand(void)
{
int arr[10] = {0,1,0,1,0,0,0,1,0,0}; // 数字序列,7个0,3个1。
return arr[rand() % 10];
}
*/


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

int nn_rand(void)
{
int arr[10] = {0,1,0,1,0,0,0,1,0,0};
return arr[rand() % 10];
}

void show_arr(int * p)
{
int i = 0;

while(i < 100)
{
printf("%d ", p[i]);
if((++i % 10) == 0)
putchar('\n');
}
}

int arr_n(int * p)
{
int i;
int count = 0;
for(i = 0; i < 100; i++)
{
if(p[i])
++count;
}
return count;
}

int main(void)
{
int n;
int i;
int arr[100];

srand((unsigned int)time(0));

puts("请按回车开始");
while(getchar() != 'q')
{
for(i = 0; i < 100; i++)
arr[i] = nn_rand();
show_arr(arr);
printf("\n1 占%%%d 。\n\n", arr_n(arr));
}
getchar();
return 0;
}

1