随机数的转换和缩放的通用公式的使用
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时,数列为连续的,公式和书中给出的公式是一样的。因此我觉得这个公式更具有通用性。
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时,数列为连续的,公式和书中给出的公式是一样的。因此我觉得这个公式更具有通用性。
相关文章推荐
- 备忘----创建套接字进行地址和端口进行网络序转换时使用ipv4和ipv6都通用的函数
- iOS开发的一些小技术:让UIImage有缩放功能、控制log的输出、xcode修改文件注释、随机数的使用、在UIImageView 中旋转图像、在Quartz中如何设置旋转点、创建.plist文件并存储
- C随机数生成通用公式
- 跟大家分享一个非常精简的夏令时转换程序,程序是通用的可以在51、430、PIC、瑞萨系列的单片机上使用
- ffmpeg系列:使用ffmpeg转换为RGB数据并缩放视频
- 金蝶EAS,BOTP单据转换规则,公式参数中使用SQL语句
- 产生一定范围随机数的通用算法公式
- 不使用汇编在vc中转换类的成员函数为一个线程的通用代码
- 使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420
- beamer中两栏排版中,公式太长可以使用段落盒子缩放缩放
- 如何在Excel中使用公式将生日自动转换成星座?
- 使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420
- 使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420
- Linux下使用convert对图片缩放和使用ffmpeg对视频进行转换
- iphone时间戳与时间之间的相互转换,随机数的使用总结
- 使用C#进行图片转换格式,缩放,自动旋转,保留exif(转载)
- 使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420
- acmore|acmore.cc1006编写程序,显示计算的结果1007可以使用以下公式计算1008转换温度1009计算圆柱体的体积1010将英尺转换为米
- ffmpeg系列:使用C++类封装ffmpeg,封装视频帧缩放转换rgb功能ToRGB()方法
- 通用SQL数据库查询语句精华使用简介