c语言随机数
写得我自己都看不好了:大家都比较喜欢吃快餐,只需要尽快告诉读者怎么用起来就行了。不想听啰啰嗦嗦说一堆,然后例程还特别麻烦
so:
1、基本
int seed = time(0);//#include <ctime>
srand(seed);
int myRandom = rand();
//就这三行就得到了一个 随机数,其他的 都不属于随机数的范畴,举个随机数的例子还要看数组,这说明这个 笔记做的是在不咋好。
2、然后是生成指定范围的数字:
如何生成一个随机数i,使得0<=i<20?
如何生成一个随机数i,使得 10<=i<20?
如何生成一个随机数i,使得 10<=i<=50?
int seed = time(0);
srand(seed);
int i1 = rand()%20;
int i2 = rand()%10+10;
int i3 = rand()%10+40;
3、解释原因

这个有点儿坑,每次结果都是一样的,说好的随机根本不随机。其实 随机数本身也是通过计算得到的,每一次都是通过随机数种子计算得到的。如果随机数种子不同那么计算出来的随机数就不同,而产生随机数种子的函数同样在 stdlib.h 里面,函数是:srand().
【此部分代码在function1()里面】
我们需要给随机数种子每次以不同的值,然后就能得到不同的随机数了,但是还有一个弊端。种子怎么才能得到不同的值。那我们知道时间每时每刻都不相同,所以如果能用时间给到随机数种子里面,那么每次得到的结果必然是不相同的。
得到

这个结果就比较好了。
下面源代码。
#include <iostream>
#include <stdlib.h>
#include <time.h>
/**
rand() 来自 stdlib.h 文件
*/
void function1(void);
void function2(void);
//int[] makeArray(int array[]);//怎么返回int类型的数组?
void display(int array[]);
int main() {
function1();
function2();
return ;
}
void function2(void){
int array[];
int randomseed = (int) time(NULL);//包含在time.h里面
//返回当前时间,是time类型需要强制类型转换成int类型。
srand(randomseed);
for(int i=;i<;i++){
array[i]=rand();
}
display(array);
}
void function1(void){
//我们利用 rand() 来产生随机数:
int array[];
for(int i=;i<;i++){
array[i]=rand();
}
display(array);
} void display(int array[]){
for(int i=;i<;i++){
printf("array[i]=%d ",array[i]);
if((i+)%==){
printf("\n");
}
}
}
c语言随机数的更多相关文章
- 【C】漫谈C语言随机数
来说说C语言如何产生随机数. 有人会说这不简单?time() + srand() + rand() 3个函数不就OK了吗? 是的,不过,我们还是来看看原理比较好,也就是随机数是如何产生的. 这不无聊. ...
- C语言-随机数
C语言使用rand()函数产生随机数, 使用rand()函数之前要先使用srand(time(0)), 以当前时间作为种子, 否则产生的随机数将不会变化. #include <stdio.h&g ...
- 洗牌算法Fisher-Yates以及C语言随机数的产生
前些天在蘑菇街的面试中碰到一道洗牌的算法题,拿出来和大家分享一下! 原题是:54张有序的牌,如何无序的发给3个人? 这个题是运用经典的洗牌算法完成.首先介绍一种经典的洗牌算法--Fisher-Yate ...
- D语言-随机数游戏
由于不会D语言的随机数,干脆core.stdc.stdlib调用stdlib.h 这里mark一下,类型转换是cast(D语言类型) NULL不能用,要用null import std.stdio; ...
- 抽签小程序(C语言随机数)
最近班级里需要人员抽签参加活动,闲来无事用java的(Math.random()方法||java.util.Random())写了一个随机抽签的,所以我又了解了一下C语言的随机数获取. C语言的随机数 ...
- (转)c语言随机数srandom( )
转自:http://zhidao.baidu.com/question/334364810.html调用随机数函数 rand()() 的时候, 实际得到的这个随机数并不是绝对随机的,它是以一个初始值, ...
- C语言随机数使用方法
随机数在编程中还是有所应用,最近从网上学习到这方面一点知识,想把它写下来.一.使用随机数所需要的头文件和函数: 头文件:cstdlib(C++ 的 standard libraray) ...
- c 语言 随机数选取6个数 一定范围内
种子来源 定时器/****************** 自动筛选种子 dat 目标种子 ************/ #define max 7 //随机生成最大的数为7 #define min 1 / ...
- Go 语言控制台输入&生成随机数
Go 语言控制台输入&生成随机数 1. 不同基础类型之间的转化对于不同的基础类型之间的转化,Go 提供了 strconv包.它实现了字符串与其他基本数据类型之间的转化.其中最常用的数值转化函数 ...
随机推荐
- python(1) - 字符串
前面说过了,字符串也是一种数据类型,但字符串有一个特殊的问题,就是编码. 因为计算机是美国人发明的,所以最早只有127个字符被编码到计算机里,就是大小写英文字母,数字和一些符号,这个编码表被称为ASC ...
- Spring 事务管理高级应用难点剖析--转
第 1 部分 http://www.ibm.com/search/csass/search/?q=%E4%BA%8B%E5%8A%A1&sn=dw&lang=zh&cc=CN& ...
- coherence初识
近期,发现在预发布环境上的项目有些冲突,本着治病救人的原则,不得已要一步步剖析,苦逼的就是我们可爱可敬的程序员. 先介绍下大体情况,应用项目都是velocity+spring+mybatis,没什么好 ...
- [改善Java代码]使用valueOf前必须进行校验
每个枚举都是java.lang.Enum的子类,都可以访问Enum类提供的方法,比如hashCode(),name(),valueOf()等..... 其中valueOf()方法会把一个String类 ...
- C语言下的简易计算器
#include <stdio.h> #include <math.h> int main() { double data1, data2; char op; == scanf ...
- hihocoder 1066 无间道之并查集
#1066 : 无间道之并查集 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 这天天气晴朗.阳光明媚.鸟语花香,空气中弥漫着春天的气息……额,说远了,总之,小Hi和小H ...
- 只能在执行 Render() 的过程中调用 RegisterForEventValidation(RegisterForEventValidation can only be called during Render();
只能在执行 Render() 的过程中调用 RegisterForEventValidation(RegisterForEventValidation can only be called durin ...
- Git CMD - tag: Create, list, delete or verify a tag object signed with GPG
命令格式 git tag [-a | -s | -u <keyid>] [-f] [-m <msg> | -F <file>] <tagname> [& ...
- 第六节 ADO.NET
ADO.NET是一组为.NET编程人员提供数据访问服务的类,封装在System.Data.dll 中,是.NET框架的一部分,它是一种数据访问技术. 使用SQLServer数据提供程序 类 说明 Sq ...
- Java I/O第二篇 之 (缓冲流 随机流 数组流 数据流)
1:缓冲流 BufferedReader BufferedWriter 具有较强的读写能力,能单独读写一行数据,能够减少对硬盘的访问次数. /** * 缓冲流 能够增强对问价数据的可读性,减少访问读 ...