如何使用Dart生成随机数?
当前回答
无法评论,因为我刚刚创建了这个帐户,但我想确保指出,@eggrobot78的解决方案是有效的,但它在dart中是独占的,所以它不包括最后一个数字。如果您将最后一行更改为“r = min + rnd.”nextInt(max - min + 1);”,那么它也应该包括最后一个数字。
解释:
max = 5;
min = 3;
Random rnd = new Random();
r = min + rnd.nextInt(max - min);
//max - min is 2
//nextInt is exclusive so nextInt will return 0 through 1
//3 is added so the line will give a number between 3 and 4
//if you add the "+ 1" then it will return a number between 3 and 5
其他回答
使用dart:math中的随机类:
import 'dart:math';
main() {
var rng = Random();
for (var i = 0; i < 10; i++) {
print(rng.nextInt(100));
}
}
在撰写本文时,这段代码已经使用Dart VM和dart2js进行了测试。
一个安全的随机API刚刚添加到dart:math
new Random.secure()
飞镖:数学 Random添加了一个安全构造函数,返回加密安全的 随机发生器,从熵源提供的读取 为每个生成的随机值嵌入。
它委托给浏览器中的window.crypto.getRandomValues()和操作系统(如服务器上的urandom)
无法评论,因为我刚刚创建了这个帐户,但我想确保指出,@eggrobot78的解决方案是有效的,但它在dart中是独占的,所以它不包括最后一个数字。如果您将最后一行更改为“r = min + rnd.”nextInt(max - min + 1);”,那么它也应该包括最后一个数字。
解释:
max = 5;
min = 3;
Random rnd = new Random();
r = min + rnd.nextInt(max - min);
//max - min is 2
//nextInt is exclusive so nextInt will return 0 through 1
//3 is added so the line will give a number between 3 and 4
//if you add the "+ 1" then it will return a number between 3 and 5
下面是生成随机数列表的代码片段
import 'dart:math';
main() {
var rng = new Random();
var l = new List.generate(12, (_) => rng.nextInt(100));
}
这将生成一个包含从0到99(包括)的12个整数的列表。
如果你需要加密安全的随机数(例如加密),并且你在浏览器中,你可以使用DOM加密API:
int random() {
final ary = new Int32Array(1);
window.crypto.getRandomValues(ary);
return ary[0];
}
这适用于Dartium、Chrome和Firefox,但可能不适用于其他浏览器,因为这是一个实验性的API。
推荐文章
- 在Flutter中向有状态小部件传递数据
- 如何在c++中生成一个随机数?
- 未处理异常:ServicesBinding.defaultBinaryMessenger在绑定初始化之前被访问
- 颤振-换行文本
- 如何在Dart中四舍五入到小数点后的给定精度程度?
- 添加一个启动屏幕颤振应用程序
- 在flutter中等同于wrap_content和match_parent ?
- 随机行选择在熊猫数据框架
- 多行文本字段在扑动
- 在Dart中命名参数和位置参数之间有什么区别?
- 如何用Dart将字符串解析为数字?
- 如何在颤振的一些延迟后运行代码?
- 从文件中读取随机行有什么简单的方法?
- 在构建过程中调用setState()或markNeedsBuild
- 我如何添加阴影的小部件颤振?