WEB/システム/IT技術ブログ

AS3で整数と文字のランダム生成

最近はFlashネタばかりですね。はまってしまったんでしょう。。。

Flashでよりクリエイティブなものを表現するのに、ランダムというのはとても重要な要素となってきます。PHPやJavascriptなど他の言語でもよく利用されますが、ActionScript3でも確認しておきます。

まず、Flashで0以上1未満の乱数を発生させるためには関数「Math.random()」を使用します。ランダム生成関数ではよく1を含むかどうかが議論されますが、AS3では1は含まないとされています。

ここからは数学の話になりますが、、、一般的な考えに沿うと0~5の中からランダムに数字を発生させたい場合に、まず6にMath.random()を掛けます。すると答えの範囲は0~5.99999になります。これの小数点を捨てると0~5になるわけです。

Math.floor(Math.random() * (5 + 1))

次に一歩発展させて、3~8のうちからランダム数字を発生させたい場合ですが、基本的な考え方は一緒です。まずは上と同じように0から、というところに考えを持ち込むために3を引きます。つまり、0~5でランダム数を発生させた結果に、後で3を足せばよいわけです。

Math.floor(Math.random() * ((8 - 3) + 1)) + 3

以上により、x~yの範囲でランダム数値を求めるための式はこのようになります。

Math.floor(Math.random() * ((y - x) + 1)) + x

ついでになりますが、文字をランダムで発生させたい場合は、予め羅列した文字列を用意しておきます。その文字列の大きさを数字に置き換えれば、さっきと考え方は一緒ですね。何番目の文字を取得する、ということをランダム数値を発生させて指定すればよいのです。

var txt:String = 'abcdefghijklmnopqrstuvwxyz';
txt.charAt(Math.floor(Math.random() * txt.length));
B!

Comment

コメントはありません

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives