Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何生成6位随机数_Dart_Flutter - Fatal编程技术网

Dart 如何生成6位随机数

Dart 如何生成6位随机数,dart,flutter,Dart,Flutter,我想生成一个随机的六位数。我尝试使用Random类,但是new Random().nextInt(999999)生成一些少于六位数的数字。所以您只需要100000到(包括)999999的数字 您可以获得此范围内的一个随机数(900000),并将100000添加到您获得的随机数中: var rng=new Random(); var代码=rng.nextInt(900000)+100000; 这将始终为您提供一个6位数的随机数。void main(){ void main() { var r

我想生成一个随机的六位数。我尝试使用
Random
类,但是
new Random().nextInt(999999)
生成一些少于六位数的数字。

所以您只需要100000到(包括)999999的数字

您可以获得此范围内的一个随机数(900000),并将100000添加到您获得的随机数中:

var rng=new Random();
var代码=rng.nextInt(900000)+100000;
这将始终为您提供一个6位数的随机数。

void main(){
void main() {
  var rnd = new math.Random();
  var next = rnd.nextDouble() * 1000000;
  while (next < 100000) {
    next *= 10;
  }
  print(next.toInt());
}
var rnd=new math.Random(); var next=rnd.nextDouble()*1000000; 而(下一个<100000){ 下一个*=10; } 打印(next.toInt()); }
您还可以生成6个不同的数字,然后将它们串联成一个字符串,如果需要,还可以将其转换为整数

import 'dart:math';
main(){
  var rndnumber="";
  var rnd= new Random();
  for (var i = 0; i < 6; i++) {
  rndnumber = rndnumber + rnd.nextInt(9).toString();
  }
  print(rndnumber);
}
import'dart:math';
main(){
var rndnumber=“”;
var rnd=新随机数();
对于(变量i=0;i<6;i++){
rndnumber=rndnumber+rnd.nextInt(9.toString();
}
打印(rndnumber);
}

以下类将生成一个包含“n”个数字的整数或一个包含“n”个数字的字符串

数值法速度会快得多,但位数有限

import 'dart:math';

class RandomDigits {
  static const MaxNumericDigits = 17;
  static final _random = Random();

  static int getInteger(int digitCount) {
    if (digitCount > MaxNumericDigits || digitCount < 1) throw new RangeError.range(0, 1, MaxNumericDigits, "Digit Count");
    var digit = _random.nextInt(9) + 1;  // first digit must not be a zero
    int n = digit;

    for (var i = 0; i < digitCount - 1; i++) {
      digit = _random.nextInt(10);
      n *= 10;
      n += digit;
    }
    return n;
  }

  static String getString(int digitCount) {
    String s = "";
    for (var i = 0; i < digitCount; i++) {
      s += _random.nextInt(10).toString();
    }
    return s;
  }
}

void main() {
    print(RandomDigits.getInteger(6));
    print(RandomDigits.getString(36));
}
import'dart:math';
类随机数字{
静态常量MaxNumericDigits=17;
静态最终随机=随机();
静态int getInteger(int digitCount){
如果(digitCount>MaxNumericDigits | | digitCount<1)抛出新的RangeError.range(0,1,MaxNumericDigits,“数字计数”);
var digit=\u random.nextInt(9)+1;//第一个数字不能是零
int n=数字;
对于(var i=0;i
输出:

995723


1988152073328010613668637448423456900

下面是一个Dart扩展方法,它将生成具有指定位数的非负随机整数:

extension RandomOfDigits on Random {
  /// Generates a non-negative random integer with a specified number of digits.
  ///
  /// Supports [digitCount] values between 1 and 9 inclusive.
  int nextIntOfDigits(int digitCount) {
    assert(1 <= digitCount && digitCount <= 9);
    int min = digitCount == 1 ? 0 : pow(10, digitCount - 1);
    int max = pow(10, digitCount);
    return min + nextInt(max - min);
  }
}

我也有同样的问题。虽然有3-4种解决方法,但我发现下面的一种方法很简单,而且很有条理。 只需检查长度匹配的数量。找到下面的代码

Integer otp = new Random().nextInt(999999);
int noOfOtpDigit=6;
  while(Integer.toString(otp).length()!=noOfOtpDigit) {
  otp = new Random().nextInt(999999);
 }
String otpString = String.valueOf(otp);
import'dart:math';
void main(){
打印(get6DigitNumber());
}
字符串get6DigitNumber(){
随机=随机();
字符串编号=“”;
对于(int i=0;i<6;i++){
number=number+random.nextInt(9).toString();
}
返回号码;
}

这是您无限量提供的六位数随机数

String getRandomNumber(){
    final r = Random();
    return List<int>.generate(6, (index) => r.nextInt(10)).fold<String>("", (prev, i) => prev += i.toString());
}
String getRandomNumber(){
最终r=随机();
返回列表.generate(6,(index)=>r.nextInt(10)).fold(“,(prev,i)=>prev+=i.toString());
}

\u generateRandomNumber(){var code=new Random().nextInt(9999999);print(code);}我也尝试了这个方法来创建一个最小长度{u generateRandomNumber(){var code=new Random().nextInt(111111>>99999);print(code);}结果如何不满足您的要求?@GünterZöchbauer它不返回6个数字长度它随机出现在0到9999999之间,例如,有时是122,但我希望它仅为6个数字长度
生成一个非负随机整数,均匀分布在从0(包含)到最大(排除)的范围内。
。您的解决方案可以从零开始,并且永远不会包含我发现的最简单的9。。thnx
import 'dart:math';

void main() {
  print(get6DigitNumber());
}

String get6DigitNumber(){
  Random random = Random();
  String number = '';
  for(int i = 0; i < 6; i++){
    number = number + random.nextInt(9).toString();
  }
  return number;
}
String getRandomNumber(){
    final r = Random();
    return List<int>.generate(6, (index) => r.nextInt(10)).fold<String>("", (prev, i) => prev += i.toString());
}