JavaScriptを使ってロト6の当選数字を予想するプログラムを考える方法

このQ&Aのポイント
  • JavaScriptを使ってロト6の当選数字を予想するプログラムを考える方法について紹介します。
  • Math.floor(Math.random() * 10)を使うことでランダムな整数を生成できます。
  • ただし、この方法では小数点以下の数字が生成されることがあります。そのため、0.5を含めないようにするためには、別の方法を使用する必要があります。
回答を見る
  • ベストアンサー

JavaScriptを使ってロト6の当選数字を予想するプログラムを考えたのですが・・・

Math.floor(Math.rondom()*10);を使うと、小数点以下の数字を出さない。 と先生に教えられたのですが、 ((Math.floor(Math.random() * 10)) + (Math.floor(Math.random() * 10))) * (Math.floor(Math.random() * 10)) + 1; を変数に入れて、テキストボックスに出力してみると、なんと小数点が出てしまいます! しかも、27.5や59.5などと、ちょうど0.5が出てしまいます。 この0.5を出さないように、ランダムで数字を出したいのですが、Math.floor以外で使えるものがあったら教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

IE6とFirefox1.5で試してみましたが、小数点はでませんでした。 何らかの間違いだと思います。 ちなみに、整数化するには、他に Math.ceil Math.round があります。

Hypocrite_k
質問者

お礼

そうでしたか・・・。 どうもありがとうございます!

関連するQ&A

  • Javascript について質問です。

    Math.floor(Math.random()*5 + 1) 上記の構文の意味について教えてください。 Math.random()が、0-1の間のどれかの数字を出力し、そのどれかの数字を*5しており、もし少数点が出たら、Math.floorで端数をきり、最後に+1するということでよろしいでしょうか? 自分が参考にしているサイトは、下記のように書かれてありました。 ”0-4の間の数字から、1から5までの数字の間までの数字を変化させる” 上記の文についてですが、0-5までで、1-6まで変化させることを表していると思うのですが、どうですか? 教えてください。

  • 配列変数に重複のないランダムな数字を入れて行くには?

    JavaScript初心者です。 配列にランダムな数字を入れたいのですが、 aRnd = new Array(); aRnd[0] = Math.floor(Math.random()*100); aRnd[1] = Math.floor(Math.random()*100); aRnd[2] = Math.floor(Math.random()*100); のようにやると各配列にはランダムな数字が入りますが、重複が発生する可能性があります。これを重複が発生しないようにしたいのですが、どのようにすればいいのでしょうか? なお、上記例では0~99までの数字を3つの配列にセットする方法となっていますが、配列数や数字の最大値は変更する可能性があるので、これも配慮したいと思います。 よろしくお願いいたします。

  • Flash 判別式について

    初心者です。判別式がうまくいきません(Flash CS5)。 box1,box2,hanbestuはダイナミックテキストで変数、ans1はテキスト入力でします(インタラクティブに入力)。 下記のプログラムでやった場合、正解の時にgoodが判別されず、常にfalseになってしまいますが、どこが間違っているのかご教示いただきたくお願いいたします。 on (release) { box1 = Math.floor(Math.random()*10+1); box2 = Math.floor(Math.random()*10+1); } on (release) { var box1:Number; var box2:Number; var ans1:Number; kaitou=box1+box2; if(ans1==kaitou){ hanbetsu="good"; }else{ hanbetsu="false"; } }

  • ActionScript 初心者です。Math.floorについて

    すみませんが教えて下さい。 参考書より 「-10~10までの範囲の整数値」であれば、小数部分を切り捨てるMath.floor()メゾットを使って「Math.floor(Math.random()*21)-10」となります。 Marh.random()が0だと「Math.floor(Math.random()*21)」の部分は「Math.floor(0*21)」となり0になります。 つまり「Math.floor(Math.random()*21)-10」の最小値は-10になります。 Math.random()が約1だと「Math.floor(Math.random()*21)」の部分はMath.floor(1*21)となり、約21(20.99999999・・)の少数部分を切り捨てて20になります。したがって「Math.floor(Math.random()*21)-10」の最大値が10になることが分かります。 とありますが、いろいろ調べても概念がさっぱりわかりません。 詳しい方、噛み砕いて教えて頂けるととてもありがたいです。 こんな質問ですみません。よろしければよろしくお願い致します。

    • ベストアンサー
    • Flash
  • javascriptで小数点以下2捨3入の記述方法は?

     javascriptで小数点以下四捨五入(Math.round)切り上(Math.ceil) 切下げ(Math.floor)はありますが、事情があって2捨3入、3捨4入が 必要となりました。どこで調べても見つかりません。どなたか記述方法 を教えてください。 また小数点以下第1位、第2位を特定できる方法もありましたら あわせて教えていただければ幸いです。

  • テキストフィールドの小数点表示について

    テキストフィールドに表示される数値の小数点以下をさせない方法はありますか? Math.floorなどを使うと問題があるのでテキストフィールドの表示だけを整数にしたいのです。 環境はFlashMXを使っています。

    • ベストアンサー
    • Flash
  • ランダムに数字を並び変える方法は

    windows2000 Flash MX 1~9までの数字をランダムに発生させ配列に入れるには v_count=new Array(); for(i=1; i<10; i++) {   v_max=9   v_count[i]=Math.floor(Math.random()*v_max)+1  } と記述しました。 配列に格納されたランダムに発生した数字が9個ありますが当然同じ数字も含まれています。 これを数字が重複しないようにする方法が知りたいのです。 つまり1~9までの数字をランダムに並べ替えたいのですがどのような方法がありますか。教えて下さい。 説明が下手でスミマセン。 ご指摘いただければ補足します。

    • ベストアンサー
    • Flash
  • 数字以外の入力をエラーにするには?

    分からないのでよろしくお願いします。 テキストボックスに一つでも数字以外の文字を入力したらエラーメッセージを出すようにしたいのです。小数点も不可にしたいです。 つまり、整数だけを許可したいです。 Dim suuji As string suuji= text1.Text If Not IsNumeric(CStr(suuji.ToString)) Then MsgBox("入力値が数字ではありません", MsgBoxStyle.Critical, "エラー") Exit Sub End If こうしたのですが、小数点は通ってしまいます。 どうすればいいかご存知の方、教えてください。

  • 【FLASH】小数点以下の「0」も表示したい。(1 → 1.0 など)

    FLASH8(Win-XP)使用者です。 残り時間の秒数などを小数点以下第1位まで表示させたい場合、通常のやり方、 hyoji.text = Math.floor(jikan*10)/10; などですと、小数点以下が0の場合は0が表示されません。どうすれば1.0などと表示されるのでしょうか。 お詳しい方、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 乱数のdouble型について

    JSPから下記のクラスファイルを呼び出し、戻り値を返すように作りたいのですがうまくいきません。 1.Math.floor(Math.random()*100)-50 上記で実行しても小数点以下がでてしまいます。 出ないようにするのは無理なのでしょうか? 2.乱数はdouble型以外だめなのでしょうか? コンパイルするとdouble型なので間接参照できません。というようなエラーが出てしまいます。 これは結果を文字型に変更して戻り値として返したいのですができません。 どうすれば理想どおりにできるようになりますか? public String getR(){  double rnd = Math.floor(Math.random()*100)-50;  if(rnd.length = 4){   rnd = rnd.substring(0,2) ;  }  else{   rnd = rnd.substring(0,3) ;  }  _R = rmd;  return _R; }

    • ベストアンサー
    • Java

専門家に質問してみよう