Re: [Python] Python Anagram Contest was Tesseract

2016-01-12 Per discussione Alessandro Re
2016-01-09 17:31 GMT+00:00 Marco Beri :
> 2016-01-09 17:09 GMT+01:00 enrico franchi :
>>
>> Categorie:
>> - il piu' corto (lunghezza, wc -c del file)
>> - il piu' veloce
>> - il piu' efficiente computazionalmente (complessita' computazionale, non
>> velocita' pura)
>> - il piu' pythonico (stile, PEP8, zen)
>
>
> Per ora concorro per il più breve (ma ammetto che c'è un bug, non le trova
> ancora tutte :-)

> Anche come efficienza non è malaccio, se non fosse che, appunto, non le
> trova tutte! :-D

Io non so bene per cosa concorro:
 - la lunghezza la ricavate dal codice (e non ho provato a renderlo corto)
 - la velocità non ha molto senso comparata su macchine diverse
 - la complessità computazionale richiede di conoscere i vostri algoritmi
 - la pythonicità è ancora un concetto che non mi è chiaro XD

Ho usato una ricerca esaustiva, eventualmente limitata da un numero di
parole (dovrebbe trovarle tutte).
Il dizionario è un file di testo, una parola per riga.

https://gist.github.com/akiross/9543c83b399664011d5a

./anagram_dfs.py "alessandro re" 2

Quando sarò "Arnaldo Serse" potrò "sondare laser" o "renderla ossa",
ma di sicuro non "renderò salsa" fatta di "sarde salerno" (e nemmeno
con "sarde orleans"). Qualunque cosa questo voglia dire.

Ciauz!
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-12 Per discussione Alessandro Pisa
2016-01-10 16:38 GMT+01:00 Giovanni Porcari :
> Ora trova tutti e 237 anagrammi di Marco Beri (con 2 parole):
>
> real0m1.104s
> user0m0.940s
> sys 0m0.083s
> Topobook:Desktop gporcari$ wc -c anagrams.py
> 1069 anagrams.py
> Topobook:Desktop gporcari$
>
>
> La tentazione di pubblicare la soluzione con genropy era irresistibile:
>
> http://genropy.org/docu/viewer/tutorial/examples/anagrams
>
>
>
> Ovviamente è più lenta che da terminale ma mi divertiva farla ;)
>

Spettacolo!
-- 
@ale_pisa - http://ale-rt.github.io - http://alepisa.blogspot.com -
https://it.linkedin.com/in/alessandro-pisa-b27a6a37
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-11 Per discussione Carlos Catucci
Il giorno 12/gen/2016 08:17, "Giovanni Porcari" <
giovanni.porc...@softwell.it> ha scritto:

> Comunque, sempre a
http://genropy.org/docu/viewer/tutorial/examples/anagrams
> potete vedere  sia la versione precedente con il limite delle 2 parole
> sia la versione che limita sulla dimensione minima delle parole che
compongono
> l'anagramma.

And the winner is ...

Carlos
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-11 Per discussione Giovanni Porcari

> Il giorno 11 gen 2016, alle ore 23:04, Marco Beri  ha 
> scritto:
> 
> 
> Il 11 gen 2016 10:34 PM, "Carlo Miron"  ha scritto:
> >
> > Temo che Giovanni abbia abbondantemente fatto già man bassa dei premi
> > a disposizione :D
> 
> Absolutely.


C'è da vedere che sia un algoritmo giusto :P

Comunque, sempre a http://genropy.org/docu/viewer/tutorial/examples/anagrams
potete vedere  sia la versione precedente con il limite delle 2 parole
sia la versione che limita sulla dimensione minima delle parole che compongono
l'anagramma.

A parte l'algoritmo che potete vedere nella classe Anagrammer, ci sono alcune
'chicche' nel codice della pagina.

Per prima cosa c'è uno slider per assegnare il valore alla lunghezza minima
delle parole da considerare. La cosa interessante è che i parametri dello
slider sono calcolati dinamicamente in funzione della lunghezza del nome
inserito. In questo modo cerco di evitare che il server si impianti
perche qualcuno chiede su nomi lunghi degli anagrammi con parole di 2 lettere.

La seconda peculiarità è che il glossario è cachato nel sito e quindi ogni
processo lo carica solo una volta nel corso della sua vita.
Questo ha consentito di risparmiare di media circa un secondo a chiamata.

Il box di ricerca nei risultati consente poi di filtrare i risultati
secondo la sequenza di caratteri digitata.

In basso a destra trovate poi un bottone per fare il download degli anagrammi
sia in formato excel che csv per cercarvi con calma quelli più gustosi.

Penso che leggendo il codice della classe Anagrammer magari ci siano possibili
miglioramenti (in effetti non sono affatto sicuro che sia il miglior modo
di anagrammare) mentre leggendo la parte che gestisce la GUI dovreste
capire qualcosa di più del modo di disegnare una GUI in genropy.

Buona giornata :)

G





___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-11 Per discussione Marco Beri
Il 11 gen 2016 10:34 PM, "Carlo Miron"  ha scritto:
>
> Temo che Giovanni abbia abbondantemente fatto già man bassa dei premi
> a disposizione :D

Absolutely.

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-11 Per discussione Marco Beri
Il 11 gen 2016 10:18 PM, "Stefano Dal Pra"  ha scritto:

> Visto solo ora questo gustoso thread. Brevemente:
>
> sdp@nbdp:~/italiano$ wc anagra.py
>  12  21 203 anagra.py
> sdp@nbdp:~/italiano$ time python anagra.py gu marco beri
> reimbarco

Eh, con una parola sola è facile... :-)

Ma con più parole la cosa si complica non poco.

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-11 Per discussione Carlo Miron
2016-01-11 22:17 GMT+01:00 Stefano Dal Pra :

>> > 2016-01-09 17:09 GMT+01:00 enrico franchi :
>> > Categorie:
>> > - il piu' corto (lunghezza, wc -c del file)
>> > - il piu' veloce
>> > - il piu' efficiente computazionalmente (complessita' computazionale,
>> > non velocita' pura)
>> > - il piu' pythonico (stile, PEP8, zen)
> [...]
> Visto solo ora questo gustoso thread. Brevemente:

Temo che Giovanni abbia abbondantemente fatto già man bassa dei premi
a disposizione :D

㎝

-- 
|:**THE BEER-WARE LICENSE** *(Revision 42)*:
|  wrote this mail. As long as you retain
| this notice you can do whatever you want with this stuff.
| If we meet some day, and you think this stuff is worth it,
| you can buy me a beer in return.
|--Carlo Miron :
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-11 Per discussione Stefano Dal Pra
2016-01-09 19:35 GMT+01:00 Giovanni Porcari :

>
> > Il giorno 09 gen 2016, alle ore 18:31, Marco Beri 
> ha scritto:
> >
> > 2016-01-09 17:09 GMT+01:00 enrico franchi :
> > Categorie:
> > - il piu' corto (lunghezza, wc -c del file)
> > - il piu' veloce
> > - il piu' efficiente computazionalmente (complessita' computazionale,
> non velocita' pura)
> > - il piu' pythonico (stile, PEP8, zen)
> >
> > Per ora concorro per il più breve (ma ammetto che c'è un bug, non le
> trova ancora tutte :-)
> >
> > marco@marco-desktop:~/work/anagrammi$ time python anagram.py italia
> Marco Beri
> > [['reimbarco']]
> >
> > real  0m1.232s
> > user  0m1.200s
> > sys   0m0.028s
> >
> > marco@marco-desktop:~/work/anagrammi$ wc anagram.py
> >   44  119 1261 anagram.py
> >
> >
> > Anche come efficienza non è malaccio, se non fosse che, appunto, non le
> trova tutte! :-D
> >
> >
>
> Ecco il mio:
>
> Topobook:Desktop gporcari$ time python anagrams.py  marco beri
> ['reimbarco']
>
> real0m0.689s
> user0m0.665s
> sys 0m0.015s
> Topobook:Desktop gporcari$ wc anagrams.py
>   26  61 654 anagrams.py
> Topobook:Desktop gporcari$
>
> Ma come il tuo non le trova tutte :)
>
>

Visto solo ora questo gustoso thread. Brevemente:

sdp@nbdp:~/italiano$ wc anagra.py
 12  21 203 anagra.py
sdp@nbdp:~/italiano$ time python anagra.py gu marco beri
reimbarco


real0m0.617s
user0m0.588s
sys 0m0.028s


gu e' un file con tutte le parole ( cat ITALIANO.? > gu )

S


> G
>
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-11 Per discussione Giovanni Porcari

> Il giorno 11 gen 2016, alle ore 17:24, enrico franchi 
>  ha scritto:
> 
> 
> 2016-01-11 7:39 GMT+00:00 Andrea D'Amore :
> Oh, io ho "starrato" il dizionario e ho unito i file, ma che
> dizionario italiano è quello che ha tutte le singole lettere
> dell'alfabeto tra i lemmi insieme a "roof" e "road"?
> 
> Beh, l'autore riporta i criteri secondo cui l'ha compilato...
> 
> Dopo di che, le singole lettere mi sembra corretto che ci siano. A "noi" non 
> fa comodo, ma per la lingua italiana sono parole valide (le parole che si 
> usano per denotare le suddette lettere...). 
> 
> Per le parole straniere, ha spiegato il criterio secondo cui le ha incluse. 
> Non sono sicuro che sia ottimale per noi, ma non volevo spendere due vite e 
> mezzo a fare review del miglior dizionario... ;)
> 
> 


In effetti considerando le lettere singole aumenta molto il numero dei 
risultati e il tempo.

Con l'algoritmo migliore che sono riuscito a fare ottengo, mettendo 1 come 
lunghezza minima:

Topobook:Desktop gporcari$ time python anagrams.py 1 marco beri
Parole da: 1 a: 9 caratteri. Caratteri totali: 9
Numero anagrammi trovati :10234

real0m21.287s
user0m21.122s
sys 0m0.096s

Con il limite di 2 è molto meglio :

Topobook:Desktop gporcari$ time python anagrams.py 2 marco beri
Parole da: 2 a: 9 caratteri. Caratteri totali: 9
Numero anagrammi trovati :1347

real0m1.254s
user0m1.158s
sys 0m0.067s


Per Nicola Larosa abbiamo 41234 anagrammi in 7.2 secondi

Topobook:Desktop gporcari$ time python anagrams.py 2 nicola larosa
Parole da: 2 a: 12 caratteri. Caratteri totali: 12
Numero anagrammi trovati :41234

real0m7.235s
user0m7.089s
sys 0m0.088s

Con Enrico Franchi abbiamo  33967 anagrammi in ben 34.7 secondi:

Topobook:Desktop gporcari$ time python anagrams.py 2 enrico franchi
Parole da: 2 a: 12 caratteri. Caratteri totali: 13
Numero anagrammi trovati :33967

real0m34.777s
user0m34.554s
sys 0m0.131s

Trovare i 134995 anagrammi di Manlio Perillo ci costa quasi un minuto.

Topobook:Desktop gporcari$ time python anagrams.py 2 manlio perillo
Parole da: 2 a: 12 caratteri. Caratteri totali: 13
Numero anagrammi trovati :134995

real0m56.921s
user0m56.458s
sys 0m0.237s

Ora per quanto Manlio sia un'ottima persona, 134995 anagrammi sono troppi da 
leggere. 
Proviamo ad aumentare la lunghezza minima a 3 e abbiamo un risultato meno 
'prolisso':

Parole da: 3 a: 12 caratteri. Caratteri totali: 13
Numero anagrammi trovati :13747

real0m3.188s
user0m3.086s
sys 0m0.068s

E per me con 2 non ci provo nemmeno e passo subito a 3:

Topobook:Desktop gporcari$ time python anagrams.py 3 giovanni porcari
Parole da: 3 a: 12 caratteri. Caratteri totali: 15
Numero anagrammi trovati :136078

real0m36.567s
user0m36.185s
sys 0m0.200s


Ma con 4 è molto meglio :

Topobook:Desktop gporcari$ time python anagrams.py 4 giovanni porcari
Parole da: 4 a: 12 caratteri. Caratteri totali: 15
Numero anagrammi trovati :17666

real0m3.680s
user0m3.556s
sys 0m0.077s



Il codice ora è un po' più lungo :

Topobook:Desktop gporcari$ wc -c anagrams.py
2602 anagrams.py


Da ultimo Guido:

Topobook:Desktop gporcari$ time python anagrams.py 3  guido van rossum
Parole da: 3 a: 12 caratteri. Caratteri totali: 14
Numero anagrammi trovati :13935

real0m14.880s
user0m14.670s
sys 0m0.117s


Ciao 

G



___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-11 Per discussione enrico franchi
2016-01-11 7:39 GMT+00:00 Andrea D'Amore :

> Oh, io ho "starrato" il dizionario e ho unito i file, ma che
> dizionario italiano è quello che ha tutte le singole lettere
> dell'alfabeto tra i lemmi insieme a "roof" e "road"?
>

Beh, l'autore riporta i criteri secondo cui l'ha compilato...

Dopo di che, le singole lettere mi sembra corretto che ci siano. A "noi"
non fa comodo, ma per la lingua italiana sono parole valide (le parole che
si usano per denotare le suddette lettere...).

Per le parole straniere, ha spiegato il criterio secondo cui le ha incluse.
Non sono sicuro che sia ottimale per noi, ma non volevo spendere due vite e
mezzo a fare review del miglior dizionario... ;)


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-11 Per discussione m

* Giovanni Porcari (giovanni.porc...@softwell.it) [160111 14:34]:


Ma secondo voi chi è 'Sgurando smuovi' o "Sargon vuduismo' ?



dipende: ci chiama Guido ?

--
 .*.finelli
 /V\
(/ \) --
(   )   Linux: Friends dont let friends use Piccolosoffice
^^-^^ --

(...) from this circumstance alone, that a controversy has been long
kept on foot, and remains still undecided, we may presume that there is
some ambiguity in the expression, and that the disputants affix
different ideas to the terms employed in the controversy.

   David Hume, An Enquiry Concerning Human Understanding, Section VIII,
Part 1
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-11 Per discussione Giovanni Porcari

> Il giorno 10 gen 2016, alle ore 23:07, enrico franchi 
>  ha scritto:
> 
> 
> 2016-01-10 16:07 GMT+00:00 Giovanni Porcari :
> Pisciava orrore
> 
> Inarrivabile. Adesso confessa pubblicamente che lo hai chiamato Saverio 
> apposta per questo. ;)
> 


Ma secondo voi chi è 'Sgurando smuovi' o "Sargon vuduismo' ?


G
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-10 Per discussione Andrea D'Amore
2016-01-11 8:39 GMT+01:00 Andrea D'Amore :
> non so come tenere conto del numero di parole totali chiamo il problema di 
> dimensione n-1,

*quando* chiamo il problema di dimensione n-1.

Riformulo tutto il periodo:
non so perché mi è venuto in mente di generare tutti i possibili
anagrammi e poi di scartare quelli che non sono nel vocabolario (è
molto più rapido fare il contrario e cercare a partire dalle parole
del vocabolario).
La soluzione più semplice mi è sembrata quella di dividere il problema
in due parti: generare tutte le permutazioni di lettere e poi da
queste generare tutte le possibili disposzioni di spazi all'interno.
Le permutazioni si fanno semplicemente prendendo ogni lettera da una
stringa, mettendola in testa e chiamando ricorsivamente sulla stringa
con la lettera in questione rimossa.
Se si prende due volte il risultato della chiamata ricorsiva, la
seconda volta aggiungendo uno spazio, si ottengono tutte le possibili
disposizioni di spazi.
Il problema è che con la chiamata ricorsiva la funzione perde traccia
di quello che c'è "a monte" quindi senza una ulteriore variabile di
stato non posso fare controlli sul numero totale di parole.

Suggerimenti?


-- 
Andrea
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-10 Per discussione Andrea D'Amore
2016-01-09 18:31 GMT+01:00 Marco Beri :
> Per ora concorro per il più breve (ma ammetto che c'è un bug, non le trova
> ancora tutte :-)

Mi aggancio qua per avere l'oggetto corretto.

me@bibook ~/D/P/adagrams> wc -l adagrams.py
  35 adagrams.py

Ma fa pena come prestazioni perché cerca tutti gli anagrammi, che è
molto laborioso.



Il <= 1 c'è per scrupolo, il caso banale dovrebbe essere solo == 1.

Ho il problema di non riuscire a pensare una soluzione ricorsiva che
tenga conto del numero totale di parole perché non so come tenere
conto del numero di parole totali chiamo il problema di dimensione
n-1, l'unica è passare un contatore per tenere traccia dello stato
della stringa nel suo complesso.

Oh, io ho "starrato" il dizionario e ho unito i file, ma che
dizionario italiano è quello che ha tutte le singole lettere
dell'alfabeto tra i lemmi insieme a "roof" e "road"?

-- 
Andrea
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-10 Per discussione Andrea D'Amore
2016-01-10 17:07 GMT+01:00 Giovanni Porcari :
> Mio figlio Saverio Porcari ha trovato un:

> Pisciava orrore

Ma no, sarà semplicemente l'asparagina, ci sono passati tutti.

Per una frittata mille pene.


-- 
Andrea
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-10 Per discussione enrico franchi
2016-01-10 16:07 GMT+00:00 Giovanni Porcari :

> Pisciava orrore
>

Inarrivabile. Adesso confessa pubblicamente che lo hai chiamato Saverio
apposta per questo. ;)


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-10 Per discussione Valerio Maggio

> On 10 Jan 2016, at 12:26, enrico franchi  wrote:
> 
> 
> 2016-01-10 1:08 GMT+00:00 Marco Beri  >:
> incrina forche
> 
> Decisamente il mio favorito.

LOL

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-10 Per discussione Giovanni Porcari


> Il giorno 10 gen 2016, alle ore 17:05, Carlos Catucci 
>  ha scritto:
> 
> Certo che trovare tra i possibili anagrammi del mio di nome uno 
> 
> scaccola turchi 

Mio figlio Saverio Porcari ha trovato un:

Pisciava orrore

:D


> 
> non e' male
> 
> Carlos
> -- 
> EZLN ... Para Todos Todo ... Nada para nosotros
> 
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-10 Per discussione Carlos Catucci
Certo che trovare tra i possibili anagrammi del mio di nome uno

scaccola turchi

non e' male

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-10 Per discussione Carlos Catucci
2016-01-10 16:38 GMT+01:00 Giovanni Porcari :

> Ovviamente è più lenta che da terminale ma mi divertiva farla ;)


Dimostrando la potebza di Genropy. Non che servisse, sia chiaro.

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-10 Per discussione Giovanni Porcari

> Il giorno 09 gen 2016, alle ore 19:35, Giovanni Porcari 
>  ha scritto:
> 
>> 
>> Il giorno 09 gen 2016, alle ore 18:31, Marco Beri  ha 
>> scritto:
>> 
>> 2016-01-09 17:09 GMT+01:00 enrico franchi :
>> Categorie:
>> - il piu' corto (lunghezza, wc -c del file)
>> - il piu' veloce
>> - il piu' efficiente computazionalmente (complessita' computazionale, non 
>> velocita' pura)
>> - il piu' pythonico (stile, PEP8, zen)
>> 
>> Per ora concorro per il più breve (ma ammetto che c'è un bug, non le trova 
>> ancora tutte :-)
>> 
>> marco@marco-desktop:~/work/anagrammi$ time python anagram.py italia Marco 
>> Beri
>> [['reimbarco']]
>> 
>> real 0m1.232s
>> user 0m1.200s
>> sys  0m0.028s
>> 
>> marco@marco-desktop:~/work/anagrammi$ wc anagram.py 
>>  44  119 1261 anagram.py
>> 
>> 
>> Anche come efficienza non è malaccio, se non fosse che, appunto, non le 
>> trova tutte! :-D
>> 
>> 
> 
> Ecco il mio:
> 
> Topobook:Desktop gporcari$ time python anagrams.py  marco beri
> ['reimbarco']
> 
> real  0m0.689s
> user  0m0.665s
> sys   0m0.015s
> Topobook:Desktop gporcari$ wc anagrams.py 
>  26  61 654 anagrams.py
> Topobook:Desktop gporcari$ 
> 
> Ma come il tuo non le trova tutte :)
> 
> G


Ora trova tutti e 237 anagrammi di Marco Beri (con 2 parole):

real0m1.104s
user0m0.940s
sys 0m0.083s
Topobook:Desktop gporcari$ wc -c anagrams.py 
1069 anagrams.py
Topobook:Desktop gporcari$ 


La tentazione di pubblicare la soluzione con genropy era irresistibile:

http://genropy.org/docu/viewer/tutorial/examples/anagrams



Ovviamente è più lenta che da terminale ma mi divertiva farla ;)

G

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-10 Per discussione enrico franchi
2016-01-10 1:08 GMT+00:00 Marco Beri :

> incrina forche
>

Decisamente il mio favorito.


-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-09 Per discussione Marco Beri
Dunque, ho dovuto aggiungere 3 righe per arrivare alla soluzione
funzionante:

marco@marco-desktop:~/work/anagrammi$ wc anagram.py
  47  124 1300 anagram.py


Soluzione con 1 sola parola:

marco@marco-desktop:~/work/anagrammi$ time python anagram.py italia 1
 Marco Beri
reimbarco

real 0m1.296s
user 0m1.272s
sys 0m0.012s


Soluzioni fino a 2 parole:


marco@marco-desktop:~/work/anagrammi$ time python anagram.py italia 2 Marco
Beri



real 0m1.524s
user 0m1.500s
sys 0m0.012s


Ma le performance con fino a 3 parole crollano miseramente a 39 secondi:

marco@marco-desktop:~/work/anagrammi$ time python anagram.py italia 3
 Marco Beri



real 0m39.574s
user 0m39.472s
sys 0m0.036s



Carlo Miron non ha soluzioni con una parola e meno soluzioni con 2 parole
(solo 65) ma alcune sono carine:

mirar colon

clono mirra

milan corro

coli marron

minor carlo

corni moral


Anche Enrico Franchi non scherza:

fanno ricerchi

rifanno cerchi

inforna ricche

finanche corri

inforcar chine

incrina forche

feriranno chic


:-D
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-09 Per discussione Esalando Prassi
2016-01-09 19:32 GMT+01:00 Esalando Prassi :
> 2016-01-09 18:31 GMT+01:00 Marco Beri :
>> 2016-01-09 17:09 GMT+01:00 enrico franchi :
>>>
>>> Categorie:
>>> - il piu' corto (lunghezza, wc -c del file)
>>> - il piu' veloce
>>> - il piu' efficiente computazionalmente (complessita' computazionale, non
>>> velocita' pura)
>>> - il piu' pythonico (stile, PEP8, zen)
>>

> Al momento sono messo così:
>  - https://github.com/ale-rt/anagram/blob/master/anagram.py
>
> [ale@kenobi anagram]$ wc anagram.py
>  20  49 600 anagram.py
> [ale@kenobi anagram]$ time ./anagram.py Marco Beri
> reimbarco
>
> real0m0.833s
> user0m0.812s
> sys 0m0.020s
>
> Stesso bug ma solide basi per il futuro...
> Si' può ottimizzare da subito evitando di riempire il dizionario
> all'inizio, ma il progetto originale prevedeva che la prima parte di
> codice venisse eseguita una volta nella vita.
>

Senza lo spreco iniziale si presenta così:
 - https://github.com/ale-rt/anagram/blob/shortest-one-word/anagram.py

[ale@kenobi anagram]$ time ./anagram.py Marco Beri
reimbarco

real0m0.487s
user0m0.480s
sys 0m0.004s

[ale@kenobi anagram]$ wc anagram.py
 14  35 390 anagram.py

Saluti, stacco o mi vengono a prendere a schiaffi (giustamente).
-- 
http://alepisa.blogspot.com
Esalando Prassi
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-09 Per discussione Giovanni Porcari

> Il giorno 09 gen 2016, alle ore 18:31, Marco Beri  ha 
> scritto:
> 
> 2016-01-09 17:09 GMT+01:00 enrico franchi :
> Categorie:
> - il piu' corto (lunghezza, wc -c del file)
> - il piu' veloce
> - il piu' efficiente computazionalmente (complessita' computazionale, non 
> velocita' pura)
> - il piu' pythonico (stile, PEP8, zen)
> 
> Per ora concorro per il più breve (ma ammetto che c'è un bug, non le trova 
> ancora tutte :-)
> 
> marco@marco-desktop:~/work/anagrammi$ time python anagram.py italia Marco Beri
> [['reimbarco']]
> 
> real  0m1.232s
> user  0m1.200s
> sys   0m0.028s
> 
> marco@marco-desktop:~/work/anagrammi$ wc anagram.py 
>   44  119 1261 anagram.py
> 
> 
> Anche come efficienza non è malaccio, se non fosse che, appunto, non le trova 
> tutte! :-D
> 
> 

Ecco il mio:

Topobook:Desktop gporcari$ time python anagrams.py  marco beri
['reimbarco']

real0m0.689s
user0m0.665s
sys 0m0.015s
Topobook:Desktop gporcari$ wc anagrams.py 
  26  61 654 anagrams.py
Topobook:Desktop gporcari$ 

Ma come il tuo non le trova tutte :)

G

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-09 Per discussione Esalando Prassi
2016-01-09 18:31 GMT+01:00 Marco Beri :
> 2016-01-09 17:09 GMT+01:00 enrico franchi :
>>
>> Categorie:
>> - il piu' corto (lunghezza, wc -c del file)
>> - il piu' veloce
>> - il piu' efficiente computazionalmente (complessita' computazionale, non
>> velocita' pura)
>> - il piu' pythonico (stile, PEP8, zen)
>
>
> Per ora concorro per il più breve (ma ammetto che c'è un bug, non le trova
> ancora tutte :-)
>
> marco@marco-desktop:~/work/anagrammi$ time python anagram.py italia Marco
> Beri
> [['reimbarco']]
>
> real 0m1.232s
> user 0m1.200s
> sys 0m0.028s
>
> marco@marco-desktop:~/work/anagrammi$ wc anagram.py
>   44  119 1261 anagram.py
>

Al momento sono messo così:
 - https://github.com/ale-rt/anagram/blob/master/anagram.py

[ale@kenobi anagram]$ wc anagram.py
 20  49 600 anagram.py
[ale@kenobi anagram]$ time ./anagram.py Marco Beri
reimbarco

real0m0.833s
user0m0.812s
sys 0m0.020s

Stesso bug ma solide basi per il futuro...
Si' può ottimizzare da subito evitando di riempire il dizionario
all'inizio, ma il progetto originale prevedeva che la prima parte di
codice venisse eseguita una volta nella vita.

Ciao
-- 
http://alepisa.blogspot.com
Esalando Prassi
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Python Anagram Contest was Tesseract

2016-01-09 Per discussione Marco Beri
2016-01-09 17:09 GMT+01:00 enrico franchi :

> Categorie:
> - il piu' corto (lunghezza, wc -c del file)
> - il piu' veloce
> - il piu' efficiente computazionalmente (complessita' computazionale, non
> velocita' pura)
> - il piu' pythonico (stile, PEP8, zen)
>

Per ora concorro per il più breve (ma ammetto che c'è un bug, non le trova
ancora tutte :-)

marco@marco-desktop:~/work/anagrammi$ time python anagram.py italia Marco
Beri
[['reimbarco']]

real 0m1.232s
user 0m1.200s
sys 0m0.028s

marco@marco-desktop:~/work/anagrammi$ wc anagram.py
  44  119 1261 anagram.py



Anche come efficienza non è malaccio, se non fosse che, appunto, non le
trova tutte! :-D

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python