Я нахожу что-то странное, что происходит с моей программой.
Эта программа в основном используется для щелчка компонентов, так как это концепция для проверки случайности.
Как вы можете видеть, она печатается правильно, так какона должна иметь тенденцию щелкать по центру, что идеально.
Проблема в том, что она кажется предвзятой.
import java.applet.Applet;
import java.awt.Point;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.awt.*;
public class Testing extends Applet {
/**
*
*/
private static final long serialVersionUID = -2441995094105327849L;
public void init() {
setSize(WIDTH, HEIGHT);
img = createImage(WIDTH, HEIGHT);
g = img.getGraphics();
paint(g);
setVisible(true);
g.setColor(new Color(0, 0, 0));
g.fillRect(0, 0, WIDTH, HEIGHT);
g.setColor(new Color(55, 55, 55, 55));
main();
}
public final static int WIDTH = 400, HEIGHT = 400;
public static int[] widths = new int[WIDTH], heights = new int[HEIGHT];
public static ArrayList<String> set = new ArrayList<String>();
public Image img;
public Graphics g;
public void paint(Graphics g) {
g.drawImage(img, 0, 0, null);
}
public void update(Graphics g) {
paint(g);
}
public void main() {
int count101 = 0;
int count100 = 0;
int count99 = 0;
try {
PrintWriter pw = new PrintWriter(new FileWriter(
new File("Data.dat")));
Point center = new Point(WIDTH / 2, HEIGHT / 2);
int runs = 10000000;
for (int i = 0; i < runs; i++) {
int x = center.x
- (int) ((Math.random() - Math.random())
* Math.random() * center.x);
int y = center.y
- (int) ((Math.random() - Math.random())
* Math.random() * center.y);
widths[x]++;
heights[y]++;
repaint();
g.fillRect(x, y, 1, 1);
if((x & y) == 101){
count101++;
}
if((x & y) == 100){
count100++;
}
if((x & y) == 99){
count99++;
}
}
System.out.println(count101);
System.out.println(count100);
System.out.println(count99);
repaint();
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Это постоянно печатает смещенные результаты.
Он печатает следующее:
3640
10918
3741
Это значительно смещено, потому что он следует за тенденцией по большей части, следуя линейному увеличению со всеми другими значениями, но как только он достигает отметки 100, он решает, что этособираешься сбросить бомбу и забрать ее на 6% больше, чем все остальные.
Кто-нибудь знает какие-либо причины для этого?
О, кстати, у меня есть текстовый файл, содержащий каждый напечатанный результатповторение 10 000 000 раз с процентами и т. д., это довольно долго, поэтому я не буду публиковать, но у меня есть информация.