您的位置:首页 > 其它

随机数的转换和缩放的通用公式的使用

2008-07-15 21:42 316 查看
在《How to Program C 4th Edition》中,随机数的转换和缩放的通用公式是

n = a + rand() % b

其中a是转换值(它等于所期望连续整数范围中的第一个数),b是缩放因子(它等于所期望的连续整数范围的宽度)。

——《How to Program C 4th Edition》中文版第145页

今天做一道C随机数的练习题时遇到这么一道题,让我编写一个生成这么一个数组的语句。

2,4,6,8,10;

3,5,7,9,11;

6,10,14,18,22;

想了一想,我写出了以下代码:

#include<stdio.h>

#include<stdlib.h>

void produceRandom();

main()

void produceRandom(){

int a, b, c;

a = 2 + rand() % 5 * 2;

b = 3 + rand() % 5 * 2;

c = 6 + rand() % 5 * 4;

printf( "%d\t%d\t%d\n", a, b, c );

}

通过这个练习,我认为这个通用的公式可以扩展一下,即

n = a + rand() % b * c

其中c是等差数列中的差值。当c=1时,数列为连续的,公式和书中给出的公式是一样的。因此我觉得这个公式更具有通用性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐