#java
#java
Вопрос:
Я написал этот фрагмент кода для имитации galton box для школьного проекта:
«‘ открытый класс GaltonBoxProject {
public static void main(String[]args){
//This will keep track of the final positions and will sort them
int[] finalColumns = {0,0,0,0,0,0,0};
//will track current pos of the ball
//8 tiers
//start from middle of the box
int randChance;
for(int a = 0; a < 100; a ) {
int currentPos = 3;
for (int i = 0; i < 9; i ) {
//resets the number
randChance = (int) (Math.random() * 100) 1;
//if less than 50 go to the left
//if 0 -->
//if 8 --> -
if(currentPos == 0 amp;amp; randChance > 50) {
currentPos ;
}
else if (currentPos == 7 amp;amp; randChance <= 50) {
currentPos--;
}
else if(currentPos != 7 amp;amp; currentPos != 0 amp;amp; randChance > 50){
currentPos ;
}
else if(currentPos != 7 amp;amp; currentPos != 0 amp;amp; randChance < 50){
currentPos--;
}
//If you want to know why I got these results
//I genuinely can't find the reason why this pattern happens
//System.out.print(" RAND: " randChance);
//System.out.println(" POS: " currentPos);
}
//Also debugging
//System.out.println(a " CURRENT POS: " currentPos);
//This will sort the numbers
for(int k = 0; k < 7; k ){
if(k == currentPos){
finalColumns[k] ;
}
}
}
//for(int i = 0; i < 8; i ) {
// System.out.println("KEY: " finalColumns[i]);
}
for(int k = 0; k < 7; k ){
System.out.print(k ": ");
for(int j = 0; j < finalColumns[k]; j ){
System.out.print("*");
}
System.out.println("");
}
}
»’
Я получаю этот результат:
0: ********
1: ********
2: **********************
3: ***
4: ******************************
5: *****
6: *****************
Я должен получать колоколообразную кривую, и я не знаю, почему код делает это
Комментарии:
1. Ваш код довольно длинный. Необходима ли визуализация в конце? Если нет, просто выведите цифры.
2. Не могли бы вы, пожалуйста, исправить форматирование, чтобы люди могли прочитать ваш вопрос без головной боли? Для начала, между каждой строкой кода не должно быть пустой строки.