OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

確率?

  • すぐに回答を!
  • 質問No.239959
  • 閲覧数49
  • ありがとう数2
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 56% (13/23)

急ぎです
ページ開いたときに確率によって出る画像なんかを変える(何%で画像A、残り何%で画像Bが出るみたいな感じ)ことができるって聞いたことあるんですけど、やり方知ってる方が居ましたら教えてください。
自分でも調べてみたのですが良くわかんないってゆうか見つからないとゆうか・・・・
お願いします
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.5
レベル10

ベストアンサー率 35% (54/152)

2つだとできたんですよね?
4つではどんな風にできないんでしょう?
具体的に教えてください。

・4つの画像がどうしても出てこないのか
・4つにしようとするとエラーが発生するのか

など。

$image_noにどんな数字が入っているかを
printで表示させてみるなどして、
どこまでが正しくできているかを見極めていけば
どこが間違いの部分かがわかると思いますよ。
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1
レベル10

ベストアンサー率 35% (54/152)

あくまでHTMLでやりたいという話ですか? CGIを使えば簡単に出来ますが・・・。 ...続きを読む
あくまでHTMLでやりたいという話ですか?
CGIを使えば簡単に出来ますが・・・。
補足コメント
howairu

お礼率 56% (13/23)

はい、出きるのであればHTMLがいいです。
でも、そのCGIのやり方も教えていただけるのなら教えてほしいです
投稿日時 - 2002-03-23 13:01:52
  • 回答No.2

JavaScriptではどうでしょう。HTMLに埋め込むので、 サーバで自作CGIが使えなくても可能です。 私は以下のコードで確認をしてみました。とりあえずダミーの画像リンクを 置いて、その後JavaScriptで乱数を発生させ、約1/2の確率で 瞬時に画像の置き換えをしています。 <HTML> <BODY> <IMG SRC="dummy.j ...続きを読む
JavaScriptではどうでしょう。HTMLに埋め込むので、
サーバで自作CGIが使えなくても可能です。

私は以下のコードで確認をしてみました。とりあえずダミーの画像リンクを
置いて、その後JavaScriptで乱数を発生させ、約1/2の確率で
瞬時に画像の置き換えをしています。

<HTML>
<BODY>
<IMG SRC="dummy.jpg" NAME="img" >
<SCRIPT LANG="JavaScript">
<!--
i = Math.random();
if ( i > 0.5){
document.img.src = "Dscf0031.jpg";
} else {
document.img.src = "Dscf0032.jpg";
}
// -->
</SCRIPT>
</BODY>
</HTML>

画像の変更は、参考URLを見てみて下さい。乱数については、
検索サイトで「JavaScript」「乱数」で検索してみてください。
お礼コメント
howairu

お礼率 56% (13/23)

ありがとうございます
これでもよさそうなのですがなんかちがうきがするんです
どうなんでしょうか(謎

とにかくありがとうございました
一度試しにやってみます
投稿日時 - 2002-03-23 13:07:12
  • 回答No.3
レベル10

ベストアンサー率 35% (54/152)

そういえばこれぐらいJavaScriptでも出来ますよね。 CGIならある程度知識があるのですが、JavaScriptはほとんど使ったこと無いので CGIならわかると思って以下のように質問してしまいました。 でも基本的にはJavaScriptの方法と同じですよ。 違いは、JavaScriptの場合は、最初にすべての画像を読み込んでしまうはずなので、 ランダムに表示させたい画像が多くなった場合 ...続きを読む
そういえばこれぐらいJavaScriptでも出来ますよね。
CGIならある程度知識があるのですが、JavaScriptはほとんど使ったこと無いので
CGIならわかると思って以下のように質問してしまいました。

でも基本的にはJavaScriptの方法と同じですよ。
違いは、JavaScriptの場合は、最初にすべての画像を読み込んでしまうはずなので、
ランダムに表示させたい画像が多くなった場合あまりお薦めできません。
CGIの場合は、表示させる画像しか読み込まないです。

20%で画像A、80%で画像Bが出るみたいな感じにするとしたら
$image_no = int(rand(10));  # $image_no に0~9の数字が入ります。ここでは必ずしも整数化する必要はありません。
if($image_no < 2){
$image = imageA.jpg;
}else{
$image = imageB.jpg;
}
print "<img src=$image>\n";

っていう感じですかね。
僕が実際に自分のホームページでやってるのは、
300枚ぐらいの画像を等確率でランダムに表示させてますので、
配列「@imagefiles」にファイルから読みとった300枚の画像のファイル名(パス)を入れた後に、

$image_no = int(rand($#imagefiles+1));  
print "<img src=$imagefiles[$image_no]>\n";

のように使ってます。
この場合は配列の引数にそのまま使ってますので整数化する必要があります。
補足コメント
howairu

お礼率 56% (13/23)

ありがとうございます
やってみたのですがうまくいきませんでした
k-ishidateさんのもそうだったのですが、画像が2つだとうまくいくんです
でも、僕が今やりたいのは4つ(始めから言っとけとかいうツッコミはなしで)なんですが、4つになるとできなくなるんですよ
どうなんですかね
できればくわしく教えていただけないでしょうか
投稿日時 - 2002-03-24 13:23:45
  • 回答No.4
レベル10

ベストアンサー率 35% (54/152)

あれ?CGIも試されたんですか? 2つだとうまくいって4つだとうまくいかないのは 単なるミスだと思いますがどのように書かれてますか? エラーが出るのでしょうか? それとも4枚出るはずが3枚しか出ないとかでしょうか? imageA:10%(数字の0) imageB:30%(数字の123) imageC:40%(数字の4567) imageD:20%(数字の89) と言う風に決めてお ...続きを読む
あれ?CGIも試されたんですか?

2つだとうまくいって4つだとうまくいかないのは
単なるミスだと思いますがどのように書かれてますか?
エラーが出るのでしょうか?
それとも4枚出るはずが3枚しか出ないとかでしょうか?

imageA:10%(数字の0)
imageB:30%(数字の123)
imageC:40%(数字の4567)
imageD:20%(数字の89)
と言う風に決めておくと

$image_no = int(rand(10));
if($image_no < 1){
$image = imageA.jpg;
}elsif($image_no < 4){
$image = imageB.jpg;
}elsif($image_no < 8){
$image = imageC.jpg;
}else{
$image = imageD.jpg;
}
print "<img src=$image>\n";

と書けばよいかと思います。
もしこれでもうまくいかなかったら、

$image_no = int(rand(10));
の上に
srand;
と書いてみて下さい。
そうすると乱数を初期化します。
補足コメント
howairu

お礼率 56% (13/23)

何度もありがとうございます
やってみたのですができませんでした
思ったのですが出来ないのはたぶん(とゆうか確実に)僕のCGIに対する知識の無さのせいだと思うんですよ
それか認識の間違いか
それでそうゆうのを探してみたんですがさっぱりでした
どうしましょう
投稿日時 - 2002-03-24 23:35:04
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ