Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

consiglio periodo

SimoneBd96 (3030 points)
6 12 33
in HW4 obbligatorio by (3.0k points)
scusate io davvero non riesco a capire che senso ha il perido, ho letto i vari post, ma non capisco si parla sempre di trovare la corrispondenza biunivoca, sentendo questa frase mi viene in mente la funzione matematica, ma una funzione matematica deve avere in input un insieme, quindi questa non capisco se sacartarla, alla fine io non conosco il periodo quindi non conosco nemmeno l'insieme di input della funzione, allora ho pensato di trovare tutte le sottosequenze ma mi sembra una cosa davvero da pazzi, specie con input grandi, potreste darmi un consiglio?? grazie in anticipo. Un esempio che butta giù ogni mia idea è il seguente 0, 0, 1, 0, 1, 2, 2, 3, 2, 3 ----- questa sequenza mi distrugge ogni ragionamento.
505 views
closed

1 Answer

Best answer
AdSum (16290 points)
9 20 134
by (16.3k points)
selected by
Non devi far altro che pensare a come tu, nella vita vera, riconosci una sequenza che si ripete, e riapplicare lo stesso ragionamento logico/matematico sotto forma di codice. Perchè tu sai che "0, 0, 1, 0, 1" e  "2, 2, 3, 2, 3" sono la stessa sequenza, ti stai solo incartando nel riportare il ragionamento. Mettila cosi, vederli come a,a,b,a,b ti aiuta? :)  O anche a,a,a+1,a,a+1?
SimoneBd96 (3030 points)
6 12 33
by (3.0k points)
grazie, ci penso e ti dico se mi torna, grazie davvero!!, anche perchè qui è divisa precisamente in due ma non è detto che sia sempre così
SimoneBd96 (3030 points)
6 12 33
by (3.0k points)
o provato ad associare delle lettere, e riconosco le sottosequenze come dicevi, ma funziona in un numero limitato di test, dopo sbrocca, evidentemente non ho capito bene questo "semplice" ragionamento, mi succede questa cosa:

PASSED test_01.py::Test::test_examples_00001_esempio
PASSED test_01.py::Test::test_examples_00002_example
PASSED test_01.py::Test::test_random_1024_00001_random_1024_rnd
PASSED test_01.py::Test::test_random_102_00001_random_102_rnd
PASSED test_01.py::Test::test_random_10_00001_random_10_rnd
FAILED test_01.py::Test::test_random_1173_00001_random_1173_rnd - AssertionError: 586 != 51 : The returned module is incorrect / Il modulo restituito non e' corretto
FAILED test_01.py::Test::test_random_180_00001_random_180_ita - AssertionError: 90 != 15 : The returned module is incorrect / Il modulo restituito non e' corretto
FAILED test_01.py::Test::test_random_2048_00001_random_2048_rnd - AssertionError: 1024 != 512 : The returned module is incorrect / Il modulo restituito non e' corretto
FAILED test_01.py::Test::test_random_2592_00001_random_2592_rnd - testlib.TimeoutError: Timeout! (0.101 > 0.1)
FAILED test_01.py::Test::test_random_270_00001_random_270_eng - AssertionError: 135 != 18 : The returned module is incorrect / Il modulo restituito non e' corretto
FAILED test_01.py::Test::test_random_2754_00001_random_2754_eng - AssertionError: 1377 != 34 : The returned module is incorrect / Il modulo restituito non e' corretto
FAILED test_01.py::Test::test_random_558_00001_random_558_eng - AssertionError: 279 != 31 : The returned module is incorrect / Il modulo restituito non e' corretto
FAILED test_01.py::Test::test_random_840_00001_random_840_ita - AssertionError: 420 != 35 : The returned module is incorrect / Il modulo restituito non e' corretto
AdSum (16290 points)
9 20 134
by (16.3k points)

Ho i tuoi stessi problemi, segui il mio post magari troviamo come risolvere, perchè sto cominciando a pensare che non ci ho capito nulla neanche io a sto punto

SimoneBd96 (3030 points)
6 12 33
by (3.0k points)
l'hai chiuso che dici alla fine?
AdSum (16290 points)
9 20 134
by (16.3k points)

me lo ha chiuso il prof, se vedi nella motivazione mi reindirizza a questo post. Effettivamente posso confermare che non avevo capito per niente come andava svolto.

 

SimoneBd96 (3030 points)
6 12 33
by (3.0k points)
purtroppo l'ho letto ma continuo a capirlo forse il problema sono io, comunque grazie
AdSum (16290 points)
9 20 134
by (16.3k points)
te lo cerco di spiegare brevemente come meglio posso.
La sequenza non è a,a,a+1,a,a+1, è a,a,b,a,b  dove  b!=a , nel caso fosse a,b,c,a,b  sarebbe a!=b e c  , b!= a e c   ,  e c!=  a e b.
I numeri non devono avere una differenza fissa, basta che sono DIVERSI negli stessi punti.
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Per essere più precisi devi trovare una corrispondenza biunivoca tra i numeri. Se fossero lettere ad esempio tra le due sequenze "a a a b a b" e "f f f r f r" la corrispondenza c'è se associ a<->f e b<->r
s
stefano.fantauzzi (2260 points)
4 6 17
by (2.3k points)
edited by

Ciao, ti rimando anche a questo link in cui cerco di spiegare un modo per calcolare il periodo, anche se probabilmente avrai già risolto.

Modo per trovare il modulo

Edit: vedendo gli errori ti dò un altro spunto su cui riflettere: in primis ti direi che il modulo deve dividere la lunghezza della prosodia (ovvero il numero di versi), in secondo luogo è chiaro che se hai trovato un modulo n allora anche i multipli di n sarranno dei moduli validi, per questo si richiede il minimo. Spero di aver aggiunto qualcosa alla discussione smiley