JavaScriptでランダムに配列要素を取得するには、九九の原理



JavaScriptを使い、アクセスごとに異なる広告を表示させたいなぁ」と思ったわけです。
勉強がてら一から調べてもいいんだけど、面倒なのでグーグル先生の力を借りました。

すると、その中に見慣れぬロジックが。

var random = Math.floor( Math.random() * imageNum );

Math.random()、Math.floor()は何となくイメージがつくとして、なんでimageNum(要素数)を掛けているんだろう。
Googleで「javascript アクセスごとに異なる画像を表示」で検索した上位の3つのサイトはいずれも同じロジックを使用しています。

ここも
netneko.jp

ここも
allabout.co.jp

ここも
ホームページ作成の第一歩【JavaScript アクセスごとに違う画像を表示する】

うーんと考えること5分。

あ、九九の原理か!

9×9でも応えは81となり、絶対に掛ける数を越えないという。
(十の位は8なので、掛ける数字の9よりも小さくなる)

これ、常套手段なんでしょうね。
最初に考えた人は、本当にすごい。

サクッと分からないような自分は、プログラマ失格ですな。。。テヘ
エクセルで表まで作って睨めっこしてましたよ(笑
f:id:nshiron:20160217014404j:plain