Programmatore iniziale qui (principalmente ingegnere). Sto facendo trapezi a strati. Iniziamo con il piccolo strato di lunghezza e terminiamo con il più lungo strato di lunghezza.
Desidero che il mio utente inserisca la lunghezza massima desiderata, la lunghezza minima desiderata, il tipo di motivo (5 o 7 ciascuno) e il numero di livelli da utilizzare.
Quindi il programma sputa un output basato su questi input. Ecco un esempio con 5 strati:
Esempio di livello 5:
15 layers = MRMRM / MRMRM / MRMRM /
Per una lunghezza minima desiderata di 3 e lunghezze variabili variabili, la mia stringa di output desiderata sarebbe:
LUNGHEZZA MAX 3: 3 [MRMRM / MRMRM / MRMRM /]
LUNGHEZZA MAX 4: 3 [MRMRM / MRMR] 4 [M / MRMRM /]
LUNGHEZZA MAX 5: 3 [MRMR] 4 [M / MRMR] 5 [M / MRMRM /]
LUNGHEZZA MAX 6: 3 [MRMR] 4 [M / MRMR] 5 [M / MR] 6 [MRM /]
(Separando prima gli M / layer, ora dividendo MRMR in stringhe di 2 caratteri)
LUNGHEZZA MAX 7: 3 [MRMR] 4 [M / MR] 5 [MR] 6 [M / MR] 7 [MRM /]
MAX LENGTH 8: 3 [MRMR] 4 [M / MR] 5 [MR] 6 [M / MR] 7 [MR] 8 [M /]
LUNGHEZZA MAX 9: 3 [MR] 4 [MR] 5 [M / MR] 6 [MR] 7 [M / MR] 8 [MR] 9 [M /]
(Ora dividendo M / dalle stringhe MR per ultime):
LUNGHEZZA MAX 10: 3 [MR] 4 [MR] 5 [M / MR] 6 [MR] 7 [M /] 8 [MR] 9 [MR] 10 [M /]
LUNGHEZZA MAX 11: 3 [MR] 4 [MR] 5 [M /] 6 [MR] 7 [MR] 8 [M /] 9 [MR] 10 [MR] 11 [M /]
Da lì, si tratta semplicemente di prendere il punto centrale e di cambiare i numeri in modo uniforme tra la parte posteriore e davanti al punto medio, aggiungendo uniformemente i numeri.
Non riesco a pensare ad un semplice algoritmo per fare questo scissione. Poiché è leggermente meno materiale, se una divisione avviene su un numero dispari (come il salto da 3-4, o 5-6), abbiamo la divisione si verificano sul lato lontano del punto medio. Immagino di dover fare due algoritmi, uno per il caso 5 layer e uno per il caso 7 layer.
Pensieri?