使用随机生成的数字创建星号直方图

Creating a histogram of asterisks with randomly generated numbers

所以基本上我必须使用随机生成器生成 1 到 10 之间的 100 个随机数,然后将它们相加求和,然后有一个直方图显示出现的每个数字的星号...我想我做对了第一部分,但我尝试在第二部分使用下面的指南,但我真的不太确定如何将它应用到我的数字中......任何帮助都会很棒

大家好,我环顾四周,在这里发现了类似的东西:Having issues with generating 1 to 300 numbers between 1 to 100 and placing each number in a String

/**
 * Write a description of class RandomCalculator here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
import java.util.Random;
public class RandomCalculator
{
    public static void main(String[] args)
    {
        Random r = new Random();
        System.out.println(" The one hundred random values are: ");
        int[] values = new int[100];
        for(int i =0; i<10; i++)
        {
            int randomint = r.nextInt(100);
            values[i] = randomint;
            System.out.print(" , " + randomint);
        }
        int sum = 0;
        for(int i : values) {
            sum+= i;
        }
        System.out.println("Sum =  " + sum);
    }
    int input = Integer.parseInt(in.nextLine());
        int aNumber;
        String One = "", Two = "", Three= "", Four = "", Five = "", Six = "", Seven = "", Eight = "", Nine = "", Ten = "", ;
      if (randomint<1 || randomint >100)

        else
        {
            for(int i = 0; i < input; i++)
            {
                aNumber = (int) (Math.random() * 100 + 1);
                if(aNumber <= 1)               One   += "*";
                else if(aNumber <= 2)            Two += "*";
                else if(aNumber <= 3)          Three  += "*";
                else if(aNumber <= 4)          Four  += "*";
                else if(aNumber <= 5)          Five  += "*";
                else if(aNumber <= 6)          Six  += "*";
                else if(aNumber <= 7)          Seven  += "*";
                else if(aNumber <= 8)          Eight  += "*";
                else if(aNumber <= 9)
        else if(aNumber <= 10)            Nine += "*";
                else                            Ten += "*";
            }
        }

    }
}
    }

您想生成 100 到 10 之间的 100 个随机数,但是您的代码生成了 0(含)到 99(含)之间的 10 个随机数。

您必须将第一个 for 循环更改为循环 100 次而不是 10 次并更改行

int randomint = r.nextInt(100);

int randomint = 1 + r.nextInt(10);

这将保证区间 [1,10](包括两者)上的数字。

对于直方图部分,您要创建另一个数组来存储直方图 bin(每个直方图的频率 bar/column)。您可以在第一个循环中更新直方图 bins 并更新总和,不需要第二个循环。

然后使用第二个循环(双 for 循环)打印直方图 bin(外循环用于线,内循环用于星号)。

示例:https://ideone.com/xjBK6i