Attualmente sto lavorando per sviluppare un programma che includa un array di 4 colonne e circa 200.000 righe. Ogni colonna rappresenta x, y, z (coordinate) e una bandiera che indica se questo punto è rosso o no (booleano 1 per sì, 0 per no). Sto cercando un modo per passare attraverso questi punti e trovare il più grande fascio di punti rossi all'interno dell'array dato.
Attualmente, la mia idea è di iniziare con un numero casuale compreso tra 0 e 1-len (x). Questo mi darebbe un indice casuale per iniziare a controllare i punti. Ho già una funzione scritta che usa un KDTree per trovare il vicino più prossimo del punto casuale e controlla se è rosso. Da qui, comincio a perdersi. Il mio istinto mi dice che dovrei cercare il prossimo punto più vicino, controllando se è rosso o meno, e così via. Tuttavia, mi sento come se mi mancasse molto. Non sono sicuro di come controllare se ho effettivamente il pacchetto più grande.
Se aiuta, è sicuro assumere che questo fascio di punti reali sia sfericamente simmetrico, e mentre non sarà direttamente all'origine (0,0,0), si può presumere che abbia un centro no più grande di 1 unità da (0,0,0).
Sarebbe di grande aiuto per me se qualcuno potesse indicarmi la giusta direzione. Grazie!