【C++】Number Random

这次来看到Number Random啦,也就是随机乱数。

随机乱数很常出现在面试的考题~ 所以我写了两种简单的乱数程序。


学习目标: Number Random的实务

学习难度: ☆☆☆


首先是单一乱数~ 很简单,只有srandrand要注意一下~

#include <iostream>

#include <ctime>

using namespace std;

int main()
{
	int num;
	
	cin>>num;
	
	srand(time(NULL)); //time(NULL)会输出从1970年1月1号 0点0分0秒开始到现在的秒数
	
	cout<<rand()%num+0<<endl; //乱数从0开始直到num 
			
	return 0;
}

接下来是多个数的乱数

使用者可以输入要乱数的数量(input),程序会输出1到input范围的数。

例如~输入5,可能会输出: 1, 3, 2, 4, 5。

比较特别的是它不会输出相同的数字

老样子用阵列去存乱数,然後再逐一检查。

#include <iostream>

#include <ctime>

#include <stdlib.h>   

using namespace std;

void random(int input)
{
	srand(time(NULL));
	
	int i,j;
	
	int num[input];
	
	for(i=0;i<input;i++) //走访乱数的数量 0~input 
	{
		do
		{	
		num[i]=rand()%(input)+1; /*这里会进行乱数(1~input)*/
		
		for(j=0;j<i;j++)
		{
			if(num[i]==num[j]) /*如果有重复的乱数就跳出*/
			 	break;
		}
						
		}while(j!=i); //当j!=i时,意味有数字重复,因为重复时,刚刚的回圈会break,不让j继续增值,所以要在做乱数 

		cout<<num[i]<<endl;
	}
}

int main()
{	
	int input;
	
	cin>>input; //输入要乱数的数量
	
	random(input); //开始执行乱数
		
	return 0;
}

参考资料:

https://www.cplusplus.com/reference/cstdlib/rand/


<<:  浅谈Web应用系统安全 - 骇客攻防战

>>:  【C#】物件导向的三大特性

Day13 - 物理模拟篇 - 弹跳球世界IV - 成为Canvas Ninja ~ 理解2D渲染的精髓

终於来到弹跳球的最後一部分~ 这篇我们主要就是要讲解倾斜面存在的状况下,程序的撰写方法! 老实说我原...

Day03基本架构(HTML)

HTML的基本架构 首先 我使用的编辑器是VS CODE 因为它的介面还蛮适合新手 而且提供很多套件...

Day 06: Creational patterns - Factory Method

目的 不再限制一个工厂(物件)建立许多产品(物件),而是转变成一个产品(物件)对应一个工厂(物件),...

[自然语言处理基础] Regular Expression (I): 「Ctrl + F」立马找出关键字

关键字搜寻与自然语言处理的关联 在正式介绍标题所提到的regular expression之前,我们...

【LeetCode】Backtracking

Backtracking:通常是用在需要纪录路径的 DFS 时。 往前搜寻,发现目前的元素不符合条件...