Nomi delle variabili del ciclo comune per gli indici in 4D e successivi

4

Sono curioso di sapere se ci sono variabili indice di ciclo comuni (di carattere singolo o no) per trattare con 4 dimensioni e sopra?

Stavo aiutando un altro studente a lavorare su CS50x che stava solo imparando a conoscere i loop e ha chiesto più o meno "se x, y, z sono standard per gli assi 3D con indici i, j, k, rispettivamente, e se ci fosse una matrice 4D?" Supposi che sarebbe stato "i, j, k, l" con x, y, z, w, (forma generale w-- e l ++ per 5D ecc.) Ma volevo controllare cosa pensavano gli altri. Mi rendo conto che, a quel punto, è abbastanza raro che non ci sia realmente uno "standard", o abbastanza complesso da rendere i loop più semplici o le variabili meglio definite.

Detto questo, ci sono nomi di variabili di ciclo "comuni" per gli indici in 4D e sopra?

Domande simili che ho trovato che non rispondevano esattamente a questo:  1. using-single-characters-for-variable- loop-eccezioni nomi-in-  2. why-do- la maggior parte-of-us-uso-i-as-a-loop-contro-variabile

    
posta MathFromScratch 17.05.2016 - 18:46
fonte

2 risposte

5

Qualcosa di significativo? L'annidamento di molte variabili di loop prive di significato diventa rapidamente illeggibile.

Immagina di vedere qualcosa di simile incorporato in quattro livelli di loop:

do_stuff(i,j,k+4, l*i)

e cercando di capire cosa fa contro qualcosa di simile:

do_stuff(row, col, height + 4, function_value * row)

Questo è un semplice esempio. Molto di questo tipo di logica sarà molto più complicato del mio semplice esempio.

Inoltre, rende più chiara la scrittura delle definizioni del ciclo. Qualcosa come:

for row in range(0, max_rows):
   for col in range(0, max_cols):
       for height in range(0, max_height):

è molto più chiaro quando si guarda al loop senza familiarità con esso. Ciò è tanto più importante quanto più è complessa la logica del tuo loop.

Si può "scappare" con iteratori con un nome scarso in cicli singoli o anche a doppio annidamento perché è banale da analizzare concettualmente. Questo non è il caso quando hai 4 livelli di cicli annidati.

Si noti che anche x, yez sono nomi utili per gli iteratori. Ma io, j, k? Questi non lo sono e se hai un ciclo complesso ti chiedi (o altri) di "tradurli".

    
risposta data 17.05.2016 - 18:55
fonte
4

Se ci sono quattro o più dimensioni, allora rappresentano qualcosa di più delle semplici coordinate cartesiane (o di altro tipo), quindi usa una (breve) parola che indica cosa sia effettivamente ogni livello.

    
risposta data 17.05.2016 - 18:53
fonte