[HW4req] AssertionError 3: Il modulo restituito non è corretto.

MRinaudo (3660 points)
18 40 50
asked Nov 10, 2020 in HW4 obbligatorio by MRinaudo (3,660 points)
closed Nov 15, 2020 by MRinaudo

Ciao a tutti,

attualmente, passo soltanto 3 test dei 13 previsti dal homework.

Il problema principale è il periodo, perché per gran parte dei test falliti, ottengo il seguente errore: AssertionError 3: Il modulo restituito non è corretto.

Se, per esempio, io prendo il file 'random-102-rnd.txt', con la mia funzione riesco ad ottenere la seguente lista che rappresenta ( o almeno dovrebbe) le possibili sottosequenze della prosodia:

[[0, 1, 2], [3, 4, 5], [6, 2, 7], [8, 9, 10], [11, 12, 13], [4, 14, 15], [5, 15, 3], [16, 13, 17], [2, 18, 19], [15, 20, 17], [21, 22, 23], [24, 25, 26], [27, 28, 6], [29, 19, 21], [27, 27, 20], [23, 19, 14], [13, 30, 5], [31, 32, 33], [34, 35, 36], [37, 33, 38], [39, 40, 41], [42, 43, 44], [35, 45, 46], [36, 46, 34], [47, 44, 48], [33, 49, 50], [46, 51, 48], [52, 53, 54], [55, 56, 57], [58, 59, 37], [60, 50, 52], [58, 58, 51], [54, 50, 45], [44, 61, 36], [0, 1, 2, 3, 4, 5], [6, 2, 7, 8, 9, 10], [11, 12, 13, 4, 14, 15], [5, 15, 3, 16, 13, 17], [2, 18, 19, 15, 20, 17], [21, 22, 23, 24, 25, 26], [27, 28, 6, 29, 19, 21], [27, 27, 20, 23, 19, 14], [13, 30, 5, 31, 32, 33], [34, 35, 36, 37, 33, 38], [39, 40, 41, 42, 43, 44], [35, 45, 46, 36, 46, 34], [47, 44, 48, 33, 49, 50], [46, 51, 48, 52, 53, 54], [55, 56, 57, 58, 59, 37], [60, 50, 52, 58, 58, 51], [54, 50, 45, 44, 61, 36], [0, 1, 2, 3, 4, 5, 6, 2, 7, 8, 9, 10, 11, 12, 13, 4, 14], [15, 5, 15, 3, 16, 13, 17, 2, 18, 19, 15, 20, 17, 21, 22, 23, 24], [25, 26, 27, 28, 6, 29, 19, 21, 27, 27, 20, 23, 19, 14, 13, 30, 5], [31, 32, 33, 34, 35, 36, 37, 33, 38, 39, 40, 41, 42, 43, 44, 35, 45], [46, 36, 46, 34, 47, 44, 48, 33, 49, 50, 46, 51, 48, 52, 53, 54, 55], [56, 57, 58, 59, 37, 60, 50, 52, 58, 58, 51, 54, 50, 45, 44, 61, 36], [0, 1, 2, 3, 4, 5, 6, 2, 7, 8, 9, 10, 11, 12, 13, 4, 14, 15, 5, 15, 3, 16, 13, 17, 2, 18, 19, 15, 20, 17, 21, 22, 23, 24], [25, 26, 27, 28, 6, 29, 19, 21, 27, 27, 20, 23, 19, 14, 13, 30, 5, 31, 32, 33, 34, 35, 36, 37, 33, 38, 39, 40, 41, 42, 43, 44, 35, 45], [46, 36, 46, 34, 47, 44, 48, 33, 49, 50, 46, 51, 48, 52, 53, 54, 55, 56, 57, 58, 59, 37, 60, 50, 52, 58, 58, 51, 54, 50, 45, 44, 61, 36], [0, 1, 2, 3, 4, 5, 6, 2, 7, 8, 9, 10, 11, 12, 13, 4, 14, 15, 5, 15, 3, 16, 13, 17, 2, 18, 19, 15, 20, 17, 21, 22, 23, 24, 25, 26, 27, 28, 6, 29, 19, 21, 27, 27, 20, 23, 19, 14, 13, 30, 5], [31, 32, 33, 34, 35, 36, 37, 33, 38, 39, 40, 41, 42, 43, 44, 35, 45, 46, 36, 46, 34, 47, 44, 48, 33, 49, 50, 46, 51, 48, 52, 53, 54, 55, 56, 57, 58, 59, 37, 60, 50, 52, 58, 58, 51, 54, 50, 45, 44, 61, 36]]

E fino a qui ci siamo.

Il mio dubbio è: che tipo di controllo o condizione dovrei impostare per far sì che il modulo mi esca corretto dalla funzione ? Dovrei applicare un ragionamento che lavora sulla lunghezza di ogni sottosequenza ?

Grazie mille!

P.S. Scusate se le mie domande possono sembrare sciocche, sono un principiante angel.

244 views
closed with note: Risolto.

2 Answers

Best answer
G
Giuseppe01 (1500 points)
0 0 10
answered Nov 11, 2020 by Giuseppe01 (1,500 points)
selected Nov 15, 2020 by MRinaudo

Ciao, ti dico come ho interpretato io il problema.

Il professore ha scritto qui sul forum che per trovare il periodo bisogna individuare il caso in cui si verifica una corrispondenza biunivoca. Ora, per corrispondenza biunivoca sappiamo che si intende funzione iniettiva e suriettiva, quindi, dati due insiemi A e B, ad elementi distinti di A devono corrispondere elementi distinti di B, ed inoltre ogni elemento di B deve risultare mappato da un elemento di A (pagina Wikipedia qui per un recap più accurato).

Il problema, nel nostro caso, è che bisogna determinare questi benedetti A e B, quando invece ci troviamo a lavorare con un numero n di insiemi (ovvero le sottosequenze).

Il mio ragionamento è stato quindi quello di applicare il check di validità della relazione in maniera iterativa. Ovvero, prendo la coppia (0,1) (intesi come indici) del gruppo di sottosequenze e dico: vale la corrispondenza biunivoca? 

  • Sì? Allora vado avanti e controllo la prossima coppia. 
  • No? Allora la corrispondenza non è verificata su questo raggruppamento in sottosequenze e pertanto passo al successivo.

Da quel che vedo hai già ottenuto delle suddivisioni in sottosequenze, quindi su questo ci sei. Posso suggerirti che secondo me non c'è bisogno di generarle tutte insieme (cioè una volta che hai i gruppi di 3 elementi controlla prima quelli, poi eventualmente passi alla successiva suddivisione).

Spero possa essere d'aiuto.

Buon lavoro :)

alessiodellasanta (11830 points)
7 13 34
answered Nov 10, 2020 by alessiodellasanta (11,830 points)
pure a me stessa identica cosaaaa