我需要一个非重复的随机数生成器



>我需要一个随机数生成器,如下所示:

从 1 到 50

7 个数字

每个数字可以是 2 位数字或 1 位数字 每个生成的数字都带有空格。

例如:1 31 22 35 3 45 23 47

void main() {
print(generateString());
}
String generateString() {
var list = List.generate(50, (index) => index + 1)..shuffle();
return list.take(7).join(' ');
}

我不熟悉颤振或Dart,但如果你知道基础知识,逻辑相当简单

1(导入随机数生成器 2( 声明一个数组来存储数字 3( 编写一个执行 7 次的 for 循环 3.1( 生成一个随机数 3.2(检查数组中是否存在 3.2.1( 如果没有,则推送到阵列 3.2.2( 如果存在,则生成一个新号码

您可以这样做来创建随机数:

import 'dart:math';
...
int min = 1;
int max = 51;
Random rnd = Random();
int r = min + rnd.nextInt(max - min);
...

如果您想检查是否已经获得了生成的数字,只需将结果添加到列表中,并通过myRandomNumberList.contains(r)? _generateRandom() : myRandomNumberList.add;验证该列表是否包含新生成的数字

这只是伪代码,向您展示解决问题的一种方法。

相关内容

最新更新