如何从飞镖范围中获取随机数?

ada*_*ger 23 dart

如何在类似于c#Random.Next(int min,int max)的范围内获得随机数;

Ale*_*uin 31

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);
Run Code Online (Sandbox Code Playgroud)


Sam*_*imy 24

您可以通过Randomclass object实现它random.nextInt(max)。该nextInt()方法需要最大限制。随机数开始于0并且最大限制本身是排他的。

import 'dart:math';
Random random = new Random();
int randomNumber = random.nextInt(100); // from 0 upto 99 included
Run Code Online (Sandbox Code Playgroud)

如果要添加最小限制,请将最小限制添加到结果中

int randomNumber = random.nextInt(90) + 10; // from 10 upto 99 included
Run Code Online (Sandbox Code Playgroud)


小智 12

这真的很晚了,但这对于仍然有问题的人来说。

在最小值和最大值之间获取随机数的最简单方法如下:

import 'dart:math';

int max = 10;

int randomNumber = Random().nextInt(max) + 1;
Run Code Online (Sandbox Code Playgroud)

dart 中的 math 模块有一个名为 nextInt 的函数。这将返回一个从 0 (包括 0 )到 max - 1 (不包括 max )的整数。我想要一个 1 到 10 的数字,因此我将 1 添加到 nextInt 结果。


ada*_*ger 11

范围可以通过如下简单的公式找到

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");
Run Code Online (Sandbox Code Playgroud)


Luc*_*aka 6

生成一个均匀分布在 [min] 到 [max](含)范围内的随机整数。

int nextInt(int min, int max) => min + _random.nextInt((max + 1) - min);
Run Code Online (Sandbox Code Playgroud)


Dev*_*ven 5

生成给定范围内的随机正整数

final _random = new Random();

// from MIN(inclusive), to MAX(exclusive).
int randomBetween(int min, int max) => min + _random.nextInt(max - min);

// from MIN(inclusive), to MAX(inclusive).
int randomBetween(int min, int max) => min + _random.nextInt((max+1) - min);

// from MIN(exclusive), to MAX(exclusive).
int randomBetween(int min, int max) => (min+1) + _random.nextInt(max - (min+1));
Run Code Online (Sandbox Code Playgroud)