2011-03-08 4 views
1

Я ищу инициализировать многомерный массив со случайными числами от 0 до 100 (включительно). Я могу создать многомерный массив с пустыми значениями в каждом поле, и тогда я смогу добавить 100 случайных чисел в доступные позиции.Java-инициализация многомерного массива со случайными целыми числами

Однако я хотел бы знать, существует ли способ инициализации многомерного массива со случайными натуральными целыми числами. Например, я хочу сделать это примерно так:

double[][] array = new double[][] {{0, 1, 2} , {1, 0, 3} , {2, 3, 0}}; 

Возможно ли это? Я думаю о чем-то вроде:

double[][] array = new double[][] {{random values go here},{random values go here}}; 

Любые предложения?

Спасибо, что нашли время для чтения.

Мик

+0

Вы хотите, чтобы генерировать случайные числа только один раз, или он должен быть новым набором случайных чисел при каждом запуске? –

+0

Привет, Кевин, я ищу для создания нового набора случайных чисел в каждом прогоне. – MusTheDataGuy

ответ

3

Создайте массив, а затем инициализируйте его в цикле for. Random.nextInt(n) дает вам то, что вам нужно.

Вот пример кода с тремя разными пробегами.

import java.util.*; 
class Init { 
    public static void main(String ... args) { 

     Random random = new Random(); 

     double[][] array = new double[10][10]; 

     for(int i = 0 ; i < array.length ; i++) { 
      for (int j = 0 ; j < array[i].length ; j++) { 
       array[i][j] = random.nextInt(101); 
      } 
     } 

     for(double[] a : array) { 
      System.out.println(Arrays.toString(a)); 
     } 
    } 
} 

Выход:

C:\Users\oreyes\langs\java>java Init 
[2.0, 92.0, 31.0, 98.0, 3.0, 5.0, 57.0, 41.0, 29.0, 89.0] 
[54.0, 57.0, 68.0, 92.0, 11.0, 20.0, 14.0, 58.0, 84.0, 23.0] 
[48.0, 14.0, 9.0, 33.0, 9.0, 27.0, 74.0, 34.0, 85.0, 91.0] 
[51.0, 87.0, 2.0, 96.0, 52.0, 81.0, 91.0, 95.0, 19.0, 56.0] 
[15.0, 90.0, 9.0, 85.0, 51.0, 23.0, 35.0, 21.0, 78.0, 14.0] 
[23.0, 20.0, 57.0, 94.0, 69.0, 99.0, 90.0, 78.0, 61.0, 38.0] 
[35.0, 61.0, 81.0, 72.0, 3.0, 93.0, 20.0, 96.0, 9.0, 35.0] 
[90.0, 100.0, 98.0, 14.0, 95.0, 75.0, 96.0, 8.0, 87.0, 25.0] 
[14.0, 41.0, 27.0, 57.0, 32.0, 37.0, 69.0, 61.0, 5.0, 42.0] 
[57.0, 0.0, 85.0, 28.0, 78.0, 47.0, 89.0, 54.0, 50.0, 59.0] 

C:\Users\oreyes\langs\java>java Init 
[3.0, 27.0, 37.0, 31.0, 52.0, 19.0, 63.0, 81.0, 88.0, 12.0] 
[80.0, 27.0, 7.0, 55.0, 21.0, 100.0, 73.0, 62.0, 9.0, 91.0] 
[85.0, 50.0, 66.0, 27.0, 63.0, 44.0, 0.0, 37.0, 93.0, 82.0] 
[73.0, 57.0, 4.0, 80.0, 5.0, 51.0, 63.0, 13.0, 97.0, 11.0] 
[87.0, 62.0, 20.0, 14.0, 44.0, 77.0, 71.0, 42.0, 27.0, 82.0] 
[37.0, 32.0, 96.0, 95.0, 45.0, 8.0, 11.0, 38.0, 61.0, 6.0] 
[34.0, 67.0, 84.0, 50.0, 38.0, 64.0, 50.0, 51.0, 50.0, 47.0] 
[79.0, 31.0, 54.0, 37.0, 27.0, 54.0, 57.0, 30.0, 77.0, 36.0] 
[74.0, 20.0, 98.0, 37.0, 8.0, 17.0, 18.0, 1.0, 29.0, 56.0] 
[21.0, 4.0, 33.0, 87.0, 4.0, 76.0, 65.0, 62.0, 76.0, 96.0] 

C:\Users\oreyes\langs\java>java Init 
[17.0, 3.0, 78.0, 32.0, 99.0, 76.0, 94.0, 93.0, 31.0, 55.0] 
[4.0, 25.0, 63.0, 68.0, 58.0, 39.0, 7.0, 55.0, 73.0, 86.0] 
[96.0, 89.0, 6.0, 100.0, 20.0, 58.0, 100.0, 91.0, 35.0, 46.0] 
[3.0, 16.0, 88.0, 82.0, 85.0, 35.0, 0.0, 1.0, 91.0, 78.0] 
[3.0, 33.0, 77.0, 10.0, 69.0, 60.0, 75.0, 58.0, 8.0, 31.0] 
[72.0, 36.0, 2.0, 19.0, 39.0, 15.0, 5.0, 74.0, 16.0, 28.0] 
[48.0, 71.0, 38.0, 17.0, 37.0, 34.0, 80.0, 98.0, 16.0, 42.0] 
[66.0, 74.0, 96.0, 80.0, 75.0, 7.0, 14.0, 46.0, 63.0, 56.0] 
[4.0, 15.0, 8.0, 93.0, 58.0, 21.0, 81.0, 100.0, 2.0, 44.0] 
[20.0, 71.0, 41.0, 43.0, 83.0, 7.0, 60.0, 28.0, 99.0, 42.0] 
+0

Большое вам спасибо за этот замечательный ответ; к сожалению, я сталкиваюсь с ошибкой при попытке этого. Ошибка распространяется на следующую строку: array [i] [j] = random.nextInt (101); Он выделяет/подчеркивает «nextInt» и выводит следующее сообщение: «Метод nextInt (int) не определен для типа Integer». В чем проблема? Спасибо, ОскарРыз. – MusTheDataGuy

+0

Вы определили случайный как 'Integer', объявите его как« Случайный », как в:« Случайный случайный = новый Случайный() ' – OscarRyz

+0

Я пробовал это и до сих пор не повезло, к сожалению ... может быть ошибка в другом месте моего проект, что затмение не обнаружено? – MusTheDataGuy

1

Будет Random.nextInt() делать то, что вы хотите?

+1

Random.nextInt (101) выполнит трюк. –

+0

Спасибо, ребята, но, к сожалению, это не сработало. Могу ли я спросить, как реализовать метод Random.nextInt()/Random.nextInt (101) в моем 3D-массиве? Благодарю. – MusTheDataGuy

Смежные вопросы