自制随机数生成器

发布于 2022-11-22  654 次阅读


开发这个的契机是因为期末论文小组答辩顺序要随机来抽

于是就把它摸出来了

#define _CRT_SECURE_NO_WARNINGS 1
using namespace std;
#include<iostream>
#include<cmath>
#include<string>
#include<ctime>
int m[114514];
int main()
{
	int a, b, c;
	cin >> c;
	srand((unsigned int)time(NULL));
	for (int n = 0; n <= c; n++)
	{
	anymoons:
		a = rand() % c + 1;
		b = n;
		for (; b >= 0; b--)
		{
			if (m[b] == a)
			{
				goto anymoons;
			}
		}
		cout << "第" << n + 1 << "组为:" << a << endl;
		m[n] = a;
	}
	return 0;
}

中途遇见的一个比较令人头疼的困难是,循环抽随机数是有可能出现重复的

逐渐摸索之后选择了一个笨方法

把每次随机出的数存入数组,每个数被随机出时先与数组内已有的进行对比

如果不重复的话正常输出,否则再次进行循环,直到出现不重复的数值

一开始跳出循环采用的break,但是break只能跳出最近的循环

所以最后选择了goto

应该还有更好的办法,只不过我想不出来了(笑)

使用方法很简单:键入你希望有多少组进行随机排序,然后就没了😋

届ける言葉を今は育ててる
最后更新于 2022-11-22