iOS 난수 생성하기

GameplayKit (iOS 9 SDK에 도입)은 게임 논리를 구현하는 데 사용되지만, 난수 생성에 사용될 수도 있습니다. 이는 앱과 게임에서 매우 유용합니다.

GKRandomSource.sharedRandom 다음 장에서 사용되는 세 가지 추가 유형이 있습니다 GKRandomSource 상자 밖으로 '들.

  • GKARC4RandomSource ARC4 알고리즘을 사용합니다.
  • GKLinearCongruentialRandomSource 빠르고 랜덤하지 않은 GKRandomSource는 어느 것입니까 GKRandomSource
  • GKMersenneTwisterRandomSource MersenneTwister 알고리즘을 구현합니다. 느리지 만 무작위입니다.

다음 장에서는 GKRandomSourcenextInt() 메서드 만 사용합니다. 이 외에도 nextBool() -> BoolnextUniform() -> Float

세대

먼저, Import GameplayKit :

빠른

import GameplayKit

목표 -C

#import <GameplayKit/GameplayKit.h>

그런 다음 난수를 생성하려면 다음 코드를 사용합니다.

빠른

let randomNumber = GKRandomSource.sharedRandom().nextInt()

목표 -C

int randomNumber = [[GKRandomSource sharedRandom] nextInt];

노트

nextInt () 함수는 매개 변수없이 사용하면 -2,147,483,648과 2,147,483,647 사이의 임의의 숫자를 반환하므로 항상 양수 또는 0이 아닌 숫자가 확실하지 않습니다.

0에서 n까지의 숫자 생성

이를 달성하려면 nextIntWithUpperBound() 메소드에 n을 부여해야합니다.

빠른

let randomNumber = GKRandomSource.sharedRandom().nextInt(upperBound: 10)

목표 -C

int randomNumber = [[GKRandomSource sharedRandom] nextIntWithUpperBound: 10];

이 코드는 0과 10 사이의 숫자를 제공합니다.

m에서 n으로 숫자 생성하기

이렇게하려면 당신은 만들 GKRandomDistribution A의 객체 GKRandomSource 하고 경계를 전달합니다. GKRandomDistributionGKGaussianDistribution 또는 GKShuffledDistribution 과 같은 배포 동작을 변경하는 데 사용할 수 있습니다.

그 후 객체는 GKRandom 프로토콜을 구현하기 때문에 모든 일반 GKRandomSource 와 같이 사용할 수 있습니다.

빠른

let randomizer = GKRandomDistribution(randomSource: GKRandomSource(), lowestValue: 0, highestValue: 6)
let randomNumberInBounds = randomizer.nextInt()

목표 -C는 시대에 뒤떨어졌다.

int randomNumber = [[GKRandomSource sharedRandom] nextIntWithUpperBound: n - m] + m;

예를 들어 3에서 10 사이의 난수를 생성하려면 다음 코드를 사용합니다.

빠른

let randomNumber = GKRandomSource.sharedRandom().nextInt(upperBound: 7) + 3

목표 -C는 시대에 뒤떨어졌다.

int randomNumber = [[GKRandomSource sharedRandom] nextIntWithUpperBound: 7] + 3;