- ベストアンサー
JAVAでの占い
全くの初心者です。「今日の運勢」というのがJAVAで作られているみたいですが、Math.random()メゾットを使って大吉、大凶の運勢を占うJAVAのプログラムソースを教えて下さい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
簡易的でよいのであれば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のほうがよいとは思います。
その他の回答 (4)
- hofchan
- ベストアンサー率62% (17/27)
>プログラムソースが間違ってますか? コードはそれで問題無いでしょう # コードが原因で 404 エラーにはならないという意味
- hofchan
- ベストアンサー率62% (17/27)
変数 a がどこにも宣言されてないからでしょう if (random >= 0.5) にすれば、やろうとしている事は出来ると 思いますが、もう一度基礎から勉強した方が よいかもしれませんね
補足
下記のように記述して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)
>またこれのclassファイルの作り方がわかりません。 >教えて頂けないでしょうか? どう見ても Servlet ですよね、その辺りは大丈夫でしょうか? クラスの作り方と言うのは基本的には同じです、必要なクラスパスを 通してコンパイルします、わからない部分を具体的にお願いします
- 参考URL:
- http://tomcat.apache.org/
補足
すみません次のようなエラーが出ます。 Uranai.java:12:シンボルを見つけられません。 シンボル:変数 a 場所 Uranaiのクラス if(a >= 0.5) エラー1個
- NeilMania
- ベストアンサー率30% (40/131)
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句変更してください~。
補足
アドバイス有難うございます。これを利用してソースを作って見ました。 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ファイルの作り方がわかりません。教えて頂けないでしょうか?