Cómo imprimir números aleatorios en una tabla de Matemáticas?

Hasitha Jayawardana:

Me estoy poniendo en práctica una mesa de matemáticas utilizando dos enteros (A y tableSize). He construido una operación aleatoria nombrado R. Voy a calcular un número aleatorio entre el rango de filas y columnas e imprimir el número aleatorio. Para aquellos casos en que el valor de fila es mayor que el valor de la columna, la salida es un guión ( "-").

Aquí está mi código,

    int a = 4;
    int tableSize = 10;
    System.out.print("    R ");
    for(int i = a; i <= tableSize;i++ )
    {
        System.out.format("%4d",i);
    }   
    System.out.println();
    for(int i = a ;i <= tableSize;i++)
    {
        System.out.format("%4d ",i);
        for(int j=a;j <= tableSize;j++)
        {
            int randomNum = rand.nextInt (j) + i;
            if(!(i > j))
            {
                System.out.format("%4d", randomNum);
            } else
            {
                System.out.format("%4s", "-");
            }
         }
         System.out.println();
     }

La necesidad de salida I es así,

R  4  5  6  7  8  9  10
4  4  4  5  5  4  9   8
5  -  5  5  6  5  9   8
6  -  -  6  6  7  9   6
7  -  -  -  7  7  7   7
8  -  -  -  -  8  9   9
9  -  -  -  -  -  9  10
10 -  -  -  -  -  -  10

Pero el problema es que no consigo la salida de esa manera. salida de recibo es,

   R    4   5   6   7   8   9  10
   4    5   7   6   8   8  10  13
   5    -   5   9   8   8  10  12
   6    -   -   9   8  11  10  11
   7    -   -   -   8  14   9  16
   8    -   -   -   -  14  12  11
   9    -   -   -   -   -  13  18
  10    -   -   -   -   -   -  19

Y el valor de la fila es mayor que el valor de la columna, por favor alguien me puede ayudar? Gracias por adelantado.

Tim Biegeleisen:

El problema es que se está calculando el valor de la celda como la suma de un número aleatorio entre 1 y el número de columna más el número de fila. La lógica que creo que quiere es que una célula dada en la matriz no puede ser mayor que el máximo del número de fila o columna. Si es así, entonces usted necesita para cambiar esta línea:

int randomNum = rand.nextInt(j) + i;

A esto:

int randomNum = rand.nextInt((Math.max(i, j) - a) + 1) + a;

Manifestación

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=221931&siteId=1
Recomendado
Clasificación