![]() |
| ||
| random numbers into an array Basically, I have to make a code that requests user input. The program asks them to tell me how many columns/rows the user wants the magic square to have. I need to then generate random numbers for each spot. ex: user inputs 3, out put looks like 3 7 1 6 4 9 8 2 5 I know how to generate a single random number but I've been trying to figure out how I'm going to get as many as the user needs. Numbers cannot be duplicated, but I can tackle that if statement on my own easily. it's just the part that involves multiple random numbers put into an array that I am having difficulty on. Any help would be greatly appreciated. So far, my code looks like: import java.awt.*; |
| ||
| Re: random numbers into an array Since the user inputs the size you can create the array: int [][] array=new int[N][N]; Then use a for-loop to put numbers in the array. As I noticed at your example the random numbers are from 1 to 9. Is that a requirement? Meaning do the numbers have to be from 1 to N*N? |
| ||
| Re: random numbers into an array Yes, it must be from 1 to N*N, with no numbers repeating. To make it easier I was thinking about making a for loop to generate numbers from 1 to N*N, not randomly. But, put them into the array and then shuffle them. I am having trouble generating randoms and putting them into a for loop. I have: int [] [] Randoms = new int [size] [size]; |
| ||
| Re: random numbers into an array You're on the right track generating the list of numbers 1 to N*N into an array and then shuffling them. You just need to consider how to pick a random place in the array to place each number. |
| ||
| Re: random numbers into an array One suggestion is this: you could have an array with values from 1 to N*N like this: (example) int [] oneDim= {1,2,3,4,5,6,7,8,9}; Generate a random number from 0 to 8. Take that number and put it inside the 2-sized array.Use a for loop that puts the first taken number to (0,0). Then use a swap method that takes the selected number and puts it at the end of the 1-sized array: example: if the random number was 4, Then the oneDim[4]=5 will be put at the target 2-sized array, and after the swap the oneDim will be like this: {1,2,3,4,9,6,7,8,5} Then you will repeat the above procedure with one difference: the random generated number will be from 0 to 7. So when you go to the oneDim array you will take only the first 8 numbers: {1,2,3,4,9,6,7,8} and you will not take the last which is already used: 5 int [] oneDim= new int[N] |
| ||
| Re: random numbers into an array You really don't even need to have a 2D array. The single 1D array is fine for a uniform rectangular grid, with rows being nothing more than an offset into the array. I hesitate to say any more though since it's a homework situation. |
| All times are GMT -4. The time now is 7:41 pm. |
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC