如何获得与c#Random.Next(int min,int max)类似的范围内的随机数;
答案 0 :(得分:19)
import 'dart:math';
final _random = new Random();
/**
* Generates a positive random integer uniformly distributed on the range
* from [min], inclusive, to [max], exclusive.
*/
int next(int min, int max) => min + _random.nextInt(max - min);
答案 1 :(得分:6)
范围可以通过以下简单公式找到
Random rnd;
int min = 5;
int max = 10;
rnd = new Random();
r = min + rnd.nextInt(max - min);
print("$r is in the range of $min and $max");
答案 2 :(得分:2)
这确实很晚,但是对于仍然有问题的任何人。
获取最小值和最大值之间的随机数的最简单方法是:
import 'dart:math';
int max = 10;
int randomNumber = Random().nextInt(max) + 1;
dart中的math模块具有一个名为nextInt的函数。这将返回一个从0(包括0)到max-1(排除max)的整数。我想要一个1到10的数字,因此我要在nextInt结果中加1。
答案 3 :(得分:1)
要生成一定范围内的随机双精度数,请将随机整数与随机双精度数相乘。
>>> def hello():
... print 'hello: '+name
...
>>> hello()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in hello
NameError: global name 'name' is not defined
>>> exec hello.func_code in {'name':'bob'}
hello: bob
>>>
答案 4 :(得分:0)
您可以通过Random
类对象random.nextInt(max)
来实现。 nextInt()
方法需要一个最大限制。随机数从0
开始,最大限制本身是唯一的。
import 'dart:math';
Random random = new Random();
int randomNumber = random.nextInt(100); // from 0 upto 99 included
如果要添加最小限制,请将最小限制添加到结果中
int randomNumber = random.nextInt(100) + 10; // from 10 upto 99 included
答案 5 :(得分:0)
import 'dart:math';
Random rnd = new Random();
// Define min and max value
int min = 1, max = 10;
//Getting range
int num = min + rnd.nextInt(max - min);
print("$num is in the range of $min and $max");
答案 6 :(得分:0)
生成均匀分布在 范围从[min]到[max](包括两个端点)。
int nextInt(int min, int max) => min + _random.nextInt((max + 1) - min);
答案 7 :(得分:0)
可以通过在int
上创建扩展名以获得随机的int值来完全实现您的预期。例如:
import 'dart:math';
import 'package:flutter/foundation.dart';
extension RandomInt on int {
static int generate({int min = 0, @required int max}) {
final _random = Random();
return min + _random.nextInt(max - min);
}
}
您可以像这样在代码中使用它:
List<int> rands = [];
for (int j = 0; j < 19; j++) {
rands.add(RandomInt.generate(max: 50));
}
请注意,不能在类型本身上调用静态扩展方法(例如int.generate(min:10, max:20)
),但是必须使用扩展名本身,在本示例中为RandomInt
。有关详细讨论,请read here。
答案 8 :(得分:-1)
一种更简单的方法是在Random中使用nextInt方法:
// Random 50 to 100:
int min = 50;
int max = 100;
int selection = min + (Random(1).nextInt(max-min));
https://api.dartlang.org/stable/2.0.0/dart-math/Random-class.html