• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:商品リンクをランダムで指定数表示したい(重複しない乱数を取り出す回数を指定したい))

商品リンクをランダムで指定数表示したい

このQ&Aのポイント
  • 指定数のランダムな商品リンクを表示する方法について教えてください。
  • 重複しない乱数を取得して指定数の商品リンクをランダムに表示したいです。
  • Amazonの商品リンクをランダムに表示する際、指定数の商品を重複しないように表示する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

知識はないのに回答してしみませんが、いろいろ方法はあるのではないでしょうか? 全体が配列に入っているとして、とりあえず思いつくのは・・・ 1)取り出したらマークをつけておく。   乱数で呼び出すときにマークがないものが出るまで繰り返す。 2)最初に、シャッフルしておく。   配列の引数回ループでまわして、適当に入れ替えを行う。 3)取り出したものをストックしておいて、新しいものを採用する前に   それまでのものと比較して同じものがなければ採用する。 とか・・・ 簡易的でよければこんなのでも、一応、ランダムになるのではないでしょうか? 全体の数と使用する数となどを考慮して効率の良い方法を決めればよいかと思います。 2)の例を以下に(リロードする度に、シャッフル後の順が変わります) <html> <body> <script> var m="最初:"; var a=[]; //最初は1~20をセット for (var i=0; i<20; i++){a[i]=i+1; m+=" ," + a[i];} //シャッフル for (i=0; i<20; i++){ var n=Math.floor(Math.random() * 20); if (i!=n) {var tmp=a[i];a[i]=a[n];a[n]=tmp;} } //結果を表示 m+="\n<p>混合:"; for (i=0; i<20; i++){m+=" ," + a[i];} document.write(m); </script> </body> </html>

suzienuzie
質問者

お礼

ご回答ありがとうございます。 全く知識がなかったために、アドバイスいただいた内容もよく理解できない状態だったのですが、入門ページ等とにらめっこで何とか思い通りの挙動をさせることができました。 2)のやり方が一般的?なのかどうかわかりませんが、他の例文にも見られましたので、その方法をとることにしました。 これを機にjavascriptもがんばらなければと思います… どうもありがとうございました。

関連するQ&A