dポイントプレゼントキャンペーン実施中!

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

A 回答 (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のほうがよいとは思います。

この回答への補足

アドバイス有難うございます。これを利用してソースを作って見ました。
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ファイルの作り方がわかりません。教えて頂けないでしょうか?

補足日時:2007/08/09 20:05
    • good
    • 0

>プログラムソースが間違ってますか?



コードはそれで問題無いでしょう
# コードが原因で 404 エラーにはならないという意味
    • good
    • 0

変数 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();
}
}

補足日時:2007/08/15 19:44
    • good
    • 0

>またこれのclassファイルの作り方がわかりません。


>教えて頂けないでしょうか?

どう見ても Servlet ですよね、その辺りは大丈夫でしょうか?
クラスの作り方と言うのは基本的には同じです、必要なクラスパスを
通してコンパイルします、わからない部分を具体的にお願いします

参考URL:http://tomcat.apache.org/

この回答への補足

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

補足日時:2007/08/11 18:54
    • good
    • 0

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句変更してください~。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!