[random] Dart에서 난수를 어떻게 생성합니까?

Dart를 사용하여 어떻게 난수를 생성합니까?



답변

사용 Random클래스 dart:math:

import 'dart:math';

main() {
  var rng = new Random();
  for (var i = 0; i < 10; i++) {
    print(rng.nextInt(100));
  }
}

이 코드는이 작성 시점에 Dart VM 및 dart2js로 테스트되었습니다.


답변

라이브러리에 있는 Randomobject 클래스 를 통해이를 달성 할 수 있습니다 . 이 방법에는 최대 제한이 필요합니다. 난수는에서 시작 하고 최대 제한 자체는 배타적입니다.random.nextInt(max)dart:mathnextInt()0

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

최소 제한을 추가하려면 결과에 최소 제한을 추가하십시오.

int randomNumber = random.nextInt(90) + 10; // from 10 upto 99 included


답변

당신이 필요로하는 경우 암호 보안이 임의의 숫자 (예 : 암호화), 당신은 브라우저에있어, 당신은 사용할 수 있습니다 DOM의 암호화 API를 :

int random() {
  final ary = new Int32Array(1);
  window.crypto.getRandomValues(ary);
  return ary[0];
}

이는 Dartium, Chrome 및 Firefox에서 작동하지만 실험적인 API이므로 다른 브라우저에서는 작동하지 않을 가능성이 높습니다.


답변

다음은 난수 목록을 생성하는 스 니펫입니다.

import 'dart:math';

main() {
  var rng = new Random();
  var l = new List.generate(12, (_) => rng.nextInt(100));
}

그러면 0에서 99 (포함)까지의 12 개 정수 목록이 생성됩니다.


답변

보안 임의 API가 방금 추가되었습니다. dart:math

new Random.secure()

dart:math
Randomsecure생성 된 모든 임의 값에 대해 임 베더가 제공 한 엔트로피 소스에서 읽는 암호화 보안 난수 생성기를 반환 하는 생성자를 추가했습니다 .

window.crypto.getRandomValues()브라우저와 OS ( urandom서버에서 와 같이) 에 위임


답변

방금이 계정을 생성했기 때문에 댓글을 달 수 없지만 @ eggrobot78의 솔루션이 작동한다는 점을 지적하고 싶었지만 다트에서 독점적이므로 마지막 번호를 포함하지 않습니다. 마지막 줄을 “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';

void main(){
  random(min, max){
    var rn = new Random();
    return min + rn.nextInt(max - min);
  }
  print(random(5,20)); // Output : 19, 6, 15..
}