• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Info Sequenza perfetta o no?

Walter

Utente Guru
Autore del topic
10 Aprile 2010
14.683
36
Miglior risposta
0
Una sequenza di 27 interi si dice perfetta se consiste di tre 1, tre 2, . . . , tre 9, posizionati in modo che per ogni i ∈ [1..9] ci sono esattamente i numeri tra le occorrenze successive di i.

Ad esempio, la sequenza 1,9,1,2,1,8,2,4,6,2,7,9,4,5,8,6,3,4,7,5,3,9,6,8,3,5,7 è perfetta!

Si scriva un programma C che acquisisce 27 numeri interi e stampi a video le stringhe "Sequenza perfetta" oppure "Seqeunza non perfetta" a seconda del risultato finale.


La mia soluzione ottimizzata per il risparmio della memoria:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Riferimento: Sequenza perfetta o no?

|=O
non ho capito questo:
posizionati in modo che per ogni i ∈ [1..9] ci sono esattamente i numeri tra le occorrenze successive di i.
 
Riferimento: Sequenza perfetta o no?

|=O
non ho capito questo:
posizionati in modo che per ogni i ∈ [1..9] ci sono esattamente i numeri tra le occorrenze successive di i.
Sinceramente nemmeno io ho ben capito quella parte della traccia, ma guardando l'esempio ho capito... :emoji_relieved:
Se nella seqeunza ci sono tre 1, tre 2, tre 3, tre 4, ecc fino a 9 la seqeunza è perfetta...
 
Riferimento: Sequenza perfetta o no?

Sinceramente nemmeno io ho ben capito quella parte della traccia, ma guardando l'esempio ho capito... :emoji_relieved:
Se nella seqeunza ci sono tre 1, tre 2, tre 3, tre 4, ecc fino a 9 la seqeunza è perfetta...
allora anche questa sarebbe una sequenza perfetta:
1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9

xD
 
Riferimento: Sequenza perfetta o no?

allora anche questa sarebbe una sequenza perfetta:
1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9

xD
Esatto, ma anche 1,1,2,1,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9 sarebbe perfetta.
Non conta l'ordina ma la quentità di cifre uguali presenti.
 
Riferimento: Sequenza perfetta o no?

No walter ... non è così ... la sequenza perfetta è più complessa e anche il programma per controllarla ...

Leggi bene la definizione ...

1,9,1,2,1,8,2,4,6,2,7,9,4,5,8,6,3,4,7,5,3,9,6,8,3,5,7 è perfetta

ma

1,1,2,1,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9 non lo è affatto.

E' proprio l'ordine che conta ...

@bleach96 @walter4991
 
Riferimento: Sequenza perfetta o no?

In quello che ha scritto @nothing il numero 1 è nella prima posizione, il secondo 1 è nella terza posizione, questo perché una sequenza perfetta è composta da numeri che si ripetono in base alla posizione + 1. Mi spiego meglio : prendendo come esempio il primo numero ( 1 ) significa che esso comparirà dopo una posizione ( ma in quella sequenza compare nella terza posizione, questo perché la posizione è determinata da n + 1 con n = 1 [in questo caso]). Magari non lo avete capito ma continuo : prendiamo per esempio il secondo numero, il 9; il prossimo 9 si troverà dopo 9 posizioni ma come detto prima la posizione in cui si trova non è la nona ma la decima ( n + 1 con n = 9 ). Stessa cosa per gli altri numeri.
 
Riferimento: Sequenza perfetta o no?

Esatto, ma anche 1,1,2,1,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9 sarebbe perfetta.
Non conta l'ordina ma la quentità di cifre uguali presenti.

bleach96 ha detto:
non ho capito questo:
posizionati in modo che per ogni i ∈ [1..9] ci sono esattamente i numeri tra le occorrenze successive di i.

In parole povere, una sequenza si dice perfetta se e solo se la distanza che intercorre fra il primo n ed il secondo n è pari ad n stesso.


1,9,1,2,1,8,2,4,6,2,7,9,4,5,8,6,3,4,7,5,3,9,6,8,3, 5,7

Ad esempio per n = 9, come puoi facilmente osservare gli spazi che vi sono sono esattamente 9, ovvero il valore di n (in questo caso).
 
Riferimento: Sequenza perfetta o no?

In quello che ha scritto @nothing il numero 1 è nella prima posizione, il secondo 1 è nella terza posizione, questo perché una sequenza perfetta è composta da numeri che si ripetono in base alla posizione + 1. Mi spiego meglio : prendendo come esempio il primo numero ( 1 ) significa che esso comparirà dopo una posizione ( ma in quella sequenza compare nella terza posizione, questo perché la posizione è determinata da n + 1 con n = 1 [in questo caso]). Magari non lo avete capito ma continuo : prendiamo per esempio il secondo numero, il 9; il prossimo 9 si troverà dopo 9 posizioni ma come detto prima la posizione in cui si trova non è la nona ma la decima ( n + 1 con n = 9 ). Stessa cosa per gli altri numeri.
Azz... Ora ho capito cosa significava questa frase :emoji_relieved:
posizionati in modo che per ogni i ∈ [1..9] ci sono esattamente i numeri tra le occorrenze successive di i.

Correggo il sorgente... :emoji_slight_smile:
 
Riferimento: Sequenza perfetta o no?

Credo sia corretto, l'esempio quantomeno viene processato correttamente.
La soluzione è bruttarella e mi è toccato usare la stdio.h per la sprintf() [e lo so che è meglio snprintf, ma vabbe'], viene eseguita in tempo iterativo (no alla ricorsione!) ma usa qualche workaround poco elegante.
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!