>第 8 章 数组>数组应用实例:统计随机数

李佳 rclijia@126.com http://learn.akae.cn/media/ch08s02.html
2008-12-10 16:52:24

#include <stdio.h>
#define RECTANGULAR 1
#define POLAR 2

int main(void)
{
  int RECTANGULAR;
  printf("%d %d\n", RECTANGULAR, POLAR);
  return 0;
}

main函数中,定义变量名“RECTANGULAR”,和宏定义冲突了吧?
编译通不过!


宋劲杉 songjinshan@akaedu.org
2008-12-10 22:50:20

这不正是我想让你得出的结论嘛:)


jiych zhujiejieno.1@gmail.com
2009-07-24 08:37:23

承认错误其实是很伟大的事,可是很多老师似乎做不到。


atommann atommann@gmail.com http://www.atommann.com/
2010-03-23 23:55:11

3 6 7 5 3 5 6 2 9 1 2 7 0 9 3 6 0 6 2 6

我计算机生成的 20 个随机数和书中的完全一致,这是为什么呢?


宋劲杉 songjinshan@gmail.com
2010-03-25 08:34:21

把本节再看一遍就知道答案了


laciqs 530107999@qq.com
2010-04-25 17:13:54

void print_random()如果改成void print_random(void)应该更好一些吧。


xudonglee xudongleee@126.com
2011-01-21 11:10:03

“
承认错误其实是很伟大的事,可是很多老师似乎做不到。


atommann atommann@gmail.com http://www.atommann.com/
2010-03-23 23:55:11

3 6 7 5 3 5 6 2 9 1 2 7 0 9 3 6 0 6 2 6

我计算机生成的 20 个随机数和书中的完全一致,这是为什么呢?
”

本来就是伪随机数,不是真正的随机数~~


郭立龙 guolilong1989@gmail.com
2011-06-16 09:04:27

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

#define N 100000
#define UPPER_BOUND 10

void count_random(int n, int upper_bound)
{
    if ((n < 1) || (upper_bound < 1) || (upper_bound > n)){
        printf("wrong input !\n");
        exit(1);
    }

    int i;
    int b[upper_bound];

    for (i = 0; i < upper_bound; i++)
        b[i] = 0;

    srand((int)time(NULL));
    for (i = 0; i < n; i++)
        b[rand() % upper_bound]++;

    printf("value\thow many\n");
    for (i = 0; i < upper_bound; i++)
        printf("%d\t%d\n", i, b[i]);
}

int main(void)
{
    count_random(N, UPPER_BOUND);

    return 0;
}


caozhijie czj627@126.com
2012-01-09 23:25:13

楼上的代码想说明什么?
只是绕个圈子吧?也没有产生正真的随机数吧?


caozhijie czj627@126.com
2012-01-09 23:42:49

上面的代码如果在两台系统时间一样的机器上同时编译执行,结果会一样吧!
如果两个人同时抛100000次色子,得到的结果一定不同吧!
可见上帝比人高明多了!也许我们抛色子得到的点数就是上帝用这个算法为我们设计好的。


如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!