Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 720 - もう少しランダム数を考える

話題が転々としてますが、再びランダム数を考えます。

数日前に理解できなかった次のメソッド、やっと理解できましたコンピュータサイエンスでは常識的な内容だったんです。やっぱり基礎力の無い独学オヤジは、こういう分野が弱いです(^^;)

func random() -> CGFloat {
    return CGFloat(Float(arc4random()) / 0xFFFFFFFF)
}

arc4random()を使って乱数を生み出して(擬似的ですよね)います。この乱数の範囲が「0〜2の32乗」だったんですね。これを16進法で記述すると、「0〜0xFFFFFFFF」なんです。

すなわち「4294967296」ってことでした。ということは発生する乱数の最大値で除算しているので、乱数の範囲が「0.000000000から1」って事になります。

そして次のメソッドで好きな範囲で乱数を発生させることができます。上手い!

func random(min min: CGFloat, max: CGFloat) -> CGFloat {
  return random() * (max - min) + min
}

今日はこれだけ。