Come si adattano gli array di k-length al numero di array più grandi?

-1

Ho n numero di matrici unidimensionali simile a:

[0,0,0,0,0,1,1,1,0,0,1,1,...]

0 e 1 indicano l'occupazione.

E k numero di array più piccoli simili a:

[2,2,2], [2,2], [2], [2,2,2,2]

con dimensioni diverse. Quello che voglio fare è vedere dove e come posso adattare gli array più piccoli (secondari) agli array più grandi che si susseguono l'uno con l'altro. Esempio:

Domain Arrays:
[0000111001]
[0011011001]
[0011100001]
[0000100001]

Smaller Arrays:
[22]
[2]
[222]

Result:

[0020111001]
[2211011001]
[0012220001]
[0000100001]

o

[0000111001]
[0011011001]
[0012200001]
[0020122201]

Spero di poterlo scrivere bene nelle parole.

La mia soluzione è:

Individuazione di punti vuoti che possono adattarsi a tutti gli array più piccoli. E creando un albero con possibili combinazioni come;

1-Il primo piccolo array va al secondo grande array 3 ° indice e occupa 3 spazi Il secondo array di 2 secondi passa ai primi big array al 7 ° indice e occupa 4 spazi

ecc.

e ottengo i pattern di ogni ramo sull'albero con la profondità del conteggio dell'array più piccolo. Ma ovviamente funziona lentamente. Quali algoritmi posso utilizzare per risolvere questo problema? Grazie in anticipo.

    
posta ag0702 23.09.2016 - 17:36
fonte

1 risposta

0

Questo è un problema di imballo dei contenitori .

Il fatto di avere più array di domini invece di uno aggiunge complessità banale. È lo stesso problema se si concatena ogni array di domini in un array e li si separa con -1 (o qualsiasi altro valore non utilizzato).

Si può considerare questo come un problema di gestione della memoria, ma ciò aggiunge un ulteriore requisito di attenzione alla frammentazione. Cioè, rendendo più difficile fare più imballaggio in seguito. Questo requisito non è stato indicato nella domanda. Non rendere questo più difficile di quello che deve essere.

    
risposta data 23.09.2016 - 19:16
fonte

Leggi altre domande sui tag