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

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

商品リンクをランダムで指定数表示したい(重複しない乱数を取り出す回数を指定したい)

小粋空間: 商品リンクをランダムに切り替える http://www.koikikukan.com/archives/2005/11/23-235730.php 上記のエントリーを参考に、amazonの商品リンクをランダムで表示させようと試してみたのですが、上記の方法だと例えば商品をA~Eまで登録していたとしても、実際ランダム表示されるのはA~Eの中から1つだけになってしまいます。 これを、個数を指定してランダム表示されるようにしたい(3と指定したとすると、A~Eの中からランダムに3つ商品を表示、のように)のですが、その際、指定数は決め打ちせず、簡単に変えられるようにしておきたいのです。 「重複しない乱数を取り出す」等検索してみましたが、不勉強のため類似質問から応用できず… 知識のある方、ご教授いただけないでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • 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

  • ランダムリンク(ランダム表示)の作成について

    初めて質問させていただきます。 自分のサイトにランダムリンク(ランダム表示)を設置しようと思いいろいろと調べてみたものの、 自分が必要としているものが見つかりませんでした。 以下が自分の希望するランダムリンクの形です。 (1)サイトのソース表示を見た場合、<a href="○○">××</a>のようなリンク形式で表示したい。 ⇒<script type ~></script> というふうに表示されないもの (2)テキストファイルなど、外部にリンク先のタグを挿入しておき、その中からランダムに表示されるようにしたい。 (3)phpで作成されたフリー配布されているものを使用させていただいたところ、うまく動かすことができませんでした。 ですので、php以外の形式のランダムリンクを希望いたします。 これらの条件にあてはまるランダムリンクの仕組み、サンプル、方法などをご存知の方はいらっしゃいませんでしょうか?? お手数ですが、よろしくお願いいたします。

    • 締切済み
    • CGI
  • ランダムリンクCGIを探しています。

    ページにアクセスする度に、ランダムにページを表示させたいと思っています。 現在 http://www.booboo.ne.jp/ のランダムリンクを試してみたのですが、ランダムといっても同じページが連続して表示されたり、設定しているURLアドレスの中で、なかなか表示されないページもあります。 timeによる乱数(?)によって、ランダムにページをリンクするようですが、もっと均等にランダムにリンクさせる事はできないでしょうか? ***.cgiにアクセスすると、ランダムにhtmlファイルを表示させるようにしたいです。 ”均等に”と言うのが難しいかもしれませんが、何か良い方法はあるでしょうか? 私自身Perlの知識がなく、1から記述する事ができないので、そのようなCGIを配付しているサイトを教えて頂ければ助かります。 よろしくお願い致します。

    • ベストアンサー
    • CGI
  • 画像+リンク&文字のランダム表示について

    画像+リンク+文字のランダム表示について 復数ある画像、リンク、文字のなかからランダムで数個(かぶらないように)表示させたいのです。 それもテーブルタグの中に。 (画像Aには必ずリンクAと文字Aがせっとになるようにです) 初心者なのでどのようにしたら良いのか、またこんな事ができるのかどうかもわかりませんが・・・ おわかりになる方、詳しく教えてください。 一応HTMLでHPをつくっているので、このように書いたら良いよ・・・という見本のようなモノを作って頂けると幸いです。 宜しくお願いします ↓の画像のように3パターンの表示を考えています。 解りづらいかもしれませんが、よろしくお願いします。

    • ベストアンサー
    • HTML
  • エクセルでランダム表示

    今は『=INDEX( : ,COUNTA( : )*RAND()+1)』で、F9を押す毎に指定した列からランダムで値を持ってきてるんですけど 上記のを使ってE列の中からA列にランダムで表示して それと同時にA列に表示されたE列の値があるのと同じ行にあるF列の値をB列に表示させたいんですけど どのようにすれば良いんでしょうか? 例えば、F9で更新した後にランダムで、    A列     B列 [E列2行目][F列2行目] [E列8行目][F列8行目] [E列5行目][F列5行目] みたいな結果を出したいんです

  • ランダムリンク

    テキストとそのリンク先がランダムで表示できるJavaスクリプトってありますか? 例えば、タグが、 『<a href='http://www.goo.ne.jp/'>goo</a>』 というテキストリンク表示があり。 更新すると、 『<a href='http://www.yahoo.co.jp/'>Yahoo!</a>』 になっているという感じで。 もし知っている人がいればお教えください(><)

    • ベストアンサー
    • Java
  • 画像リンクをランダムに4つ表示する

    このようなタグを使って、画像リンクのランダム表示を作成しました。 ((hard内)) <script type="text/javascript"><!-- // var imglist = [ [ "画像1", "", "リンク先1" ] , [ "画像2", "", "リンク先2" ] ]; function RandomImageLink() { // var selectnum = Math.floor(Math.random() * imglist.length); // var output = '<a href="' + imglist[selectnum][2] + '">' + '<img src="' + imglist[selectnum][0] + '"' + ' alt="' + imglist[selectnum][1] + '"><br>' + imglist[selectnum][1] + '</a>'; // document.write(output); } // --></script> ((body内)) <script type="text/javascript"><!-- RandomImageLink(); // --></script> こうしてランダムに表示できるようになったのですが、私は『ランダムに1つ表示』ではなく、『ランダムに4つ表示』にしたいのです。 …どうすればいいのでしょうか? どなたか回答をお願いします。

  • javascriptによるランダム画像表示のリンク指定について教えて頂

    javascriptによるランダム画像表示のリンク指定について教えて頂きたく投稿しました。 以下のサイトを参考に作成したのですが、 http://www.geocities.jp/sii_side/chie/20090308/ 画像に任意のリンクを貼りたいと思っているのですが、なかなかうまくいきません(泣) よろしくご教授ください

  • 画像をランダムに表示し、リンクもランダムにしたい

    下記の通りにしたら、ランダムに画像が表示され、 クリックすれば画像とペアになっているアドレス先に飛ぶことは出来たのですが そのときのリンク先をランダムにすることは出来ないでしょか? 例えば、img[2] の画像が表示された場合、jmp[2] ではなく 5つのアドレスの中からランダムにリンク先が決まる、 というようなことなんですが・・・。 // ランダムに画像を表示する jmp = new Array(); img = new Array(); // ジャンプ先のアドレス(数字は画像と対応) jmp[0] = "http://~"; jmp[1] = "http://~"; jmp[2] = "http://~"; jmp[3] = "http://~"; jmp[4] = "http://~"; // 画像のアドレス(数字はジャンプ先のアドレスと対応) img[0] = "img/img1.jpg"; img[1] = "img/img2.jpg"; img[2] = "img/img3.jpg"; img[3] = "img/img4.jpg"; img[4] = "img/img5.jpg"; n = Math.floor(Math.random()*jmp.length); document.write("<a href='"+jmp[n]+"' target='_blank'>"); document.write("<img src='"+img[n]+"' border='0'>"); document.write("</a>");

  • FLASHのランダム表示とリンク

    どなたか教えていただけると嬉しいです。 FLASHファイルをリロードするたびにランダム表示し、そこからリンクを飛ばしたいと思っています。 swfファイル一つの中に切り替わる画像と個別リンクをいくつか設定しています。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1356858833 http://ziddy.japan.zdnet.com/qa4502317.html この辺りを参考にランダム表示には成功したのですが、 どうもブラウザによってはリンク設定が消えてしまうのです。 リンクも上手くいかせる方法はありますでしょうか? 宜しくお願いします!

    • ベストアンサー
    • Flash
  • ランダム表示画像にリンクマップを貼れますか?

    ページの上部に、ページが更新するたびに違う画像が 表示されるようにJavaScriptで記述をしているのですが、 その画像の数箇所に、別々のURLを貼りたいのです。 ランダム表示ではない通常の画像の場合、 それぞれの形に合わせてエリアを指定し、 リンクマップをすればいいと思うのですが、 ランダム表示をしている画像に対しては どうすれば良いのでしょうか? また、リンクを貼る部分をオンマウスオーバーするようにも したいのです。 このような事は可能なのでしょうか?

専門家に質問してみよう