【发布时间】:2014-02-26 18:42:17
【问题描述】:
对于我缺乏 Java 知识,我提前道歉。我是 Java 编程的新手,我正在尝试制作一个程序,我可以在其中掷硬币并计算硬币在 N 次滚动中落在正面的次数,测量这样做所需的时间,然后将其打印出来控制台,以便我可以将其保存在 .txt 文件中。我想我几乎明白了;我现在只是很难打印出来。任何帮助,将不胜感激!我被困住了!
import java.util.Random;
import java.io.*;
public class RollGraph
{
public static void flip(int n)
{
Random rnd = new Random();
int roll = 0;
int countHeads = 0;
int headsInRow = 0;
int headsOrTails = rnd.nextInt(2);
while(roll<n){
if(headsOrTails == 1){
countHeads++;
headsInRow++;
}
else{
headsInRow=0;
}
}
return;
}
public static void main(String[] arg) throws IOException
{
BufferedWriter writer = new BufferedWriter(
new FileWriter( new File("data.txt")));
long start,end,elapsed;
int repeat = 20;
double total;
double average;
for(int n=1;n<100;n++)
{
total = 0.0;
for(int j=0;j<repeat;j++)
{
start = System.nanoTime();
flip(n);
end = System.nanoTime();
elapsed = end - start;
total += elapsed/1000000;
}
average = total/repeat;
String line = n+"\t"+ average+"\t"+Math.log(average);
System.out.println(line);
writer.write(line);
writer.newLine();
writer.flush();
}
writer.close();
}
}
【问题讨论】:
-
您应该指定您认为应该实现的究竟是什么,或者您想要实现什么而不是如何实现。
-
您可能想要增加您的
roll变量,现在您的while循环将永远运行——假设n从1 或更多开始。 -
您的翻转方法根本不返回任何内容。
标签: java random filewriter nanotime coin-flipping