• ベストアンサー

JAVAでの占い

全くの初心者です。「今日の運勢」というのがJAVAで作られているみたいですが、Math.random()メゾットを使って大吉、大凶の運勢を占うJAVAのプログラムソースを教えて下さい。

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

  • ベストアンサー
  • momozange
  • ベストアンサー率67% (21/31)
回答No.1

簡易的でよいのであればMath.random()で取得した値が0.5以上かどうかを判定すればよいと思いますが... double random = Math.random(); if (random > 0.5) { System.out.print(">大吉"); } else { System.out.print(">大凶"); } 1000回を1セットとして20回ほど実行してみましたが、いずれも5%以内の偏りしか発生しませんでした。 内部のアルゴリズムは同じなので乱数の種を指定できるjava.util.Randomのほうがよいとは思います。

oyajipu
質問者

補足

アドバイス有難うございます。これを利用してソースを作って見ました。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Unsei extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { double random = Math.random(); response.setContentType("text/html;charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<html><head>"); out.println("<title>運勢占い</title></head><body>"); if(a >= 0.5) { out.println("大吉です!"); }else{ out.println("大凶です!"); } out.println("</body></html>"); out.close(); } } これで良いのでしょうか? またこれのclassファイルの作り方がわかりません。教えて頂けないでしょうか?

その他の回答 (4)

  • hofchan
  • ベストアンサー率62% (17/27)
回答No.5

>プログラムソースが間違ってますか? コードはそれで問題無いでしょう # コードが原因で 404 エラーにはならないという意味

  • hofchan
  • ベストアンサー率62% (17/27)
回答No.4

変数 a がどこにも宣言されてないからでしょう if (random >= 0.5) にすれば、やろうとしている事は出来ると 思いますが、もう一度基礎から勉強した方が よいかもしれませんね

oyajipu
質問者

補足

下記のように記述してUranai.javaで保存しclassファイルも作る事ができました、が、Tomcatで動作確認しましたが「404エラー」が出ます。プログラムソースが間違ってますか? import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Uranai extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { double a; a = Math.random(); response.setContentType("text/html;charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<html><head>"); out.println("<title>運勢占い</title></head><body>"); if(a >= 0.5) { out.println("大吉です!"); }else{ out.println("大凶です!"); } out.println("</body></html>"); out.close(); } }

  • hofchan
  • ベストアンサー率62% (17/27)
回答No.3

>またこれのclassファイルの作り方がわかりません。 >教えて頂けないでしょうか? どう見ても Servlet ですよね、その辺りは大丈夫でしょうか? クラスの作り方と言うのは基本的には同じです、必要なクラスパスを 通してコンパイルします、わからない部分を具体的にお願いします

参考URL:
http://tomcat.apache.org/
oyajipu
質問者

補足

すみません次のようなエラーが出ます。 Uranai.java:12:シンボルを見つけられません。 シンボル:変数 a 場所  Uranaiのクラス      if(a >= 0.5) エラー1個

  • NeilMania
  • ベストアンサー率30% (40/131)
回答No.2

public class Uranai { public static void main(String [] args){ int count = (int)((Math.random() * 6) + 1); switch(count){ case 1: System.out.println("大吉"); break; case 2: System.out.println("中吉"); break; case 3: System.out.println("小吉"); break; case 4: System.out.println("凶"); break; default: System.out.println("大凶"); } } } 今のままだと大凶ばかりになるので適当にcase句変更してください~。

関連するQ&A