che sto cercando di fare questo lavoro per gli algoritmi, che mi chiedono di riempire un array bidimensionale di int in questo modo:Riempire una matrice 2D con manhattan modello distanza
4 3 2 3 4
3 2 1 2 3
2 1 0 1 2
3 2 1 2 3
4 3 2 3 4
ho provato questo in Java:
int[][] array = new int[5][5];
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
array[i][j] = Math.abs(i - j);
}
}
ma mi dà qualcosa di simile:
0 1 2 3 4
1 0 1 2 3
2 1 0 1 3
3 2 1 0 1
4 3 2 1 0
E non è proprio la stessa cosa, ma è il più vicino che Ho trovato. Ho scritto il codice in java ma può essere in qualsiasi altra lingua ... l'importante è la "formula" che penso. Quindi, se puoi aiutarmi a risolvere questo problema, sarà bello, ho provato a cercare il codice online ma non ho trovato nulla ... grazie.
Per prima cosa è necessario calcolare il numero manualmente, prima di poterlo calcolare con un programma per computer. Quindi il numero in ogni cella è Manhattan distanza dal centro. Cerca come calcolare la distanza di Manhattan, quindi calcola a mano per assicurarti di ottenere gli stessi risultati dell'esempio, quindi converti il calcolo in codice. – hyde