Gg.
Ora vado un po' a cercare in rete, qualcuno sa se esiste un bel programmino
scaricabile?
> E il mitico mastermind?
> Come impostare un algoritmo? Provare a generare semplicemente tutte le
> sequenze possibili e scartare quelle non ammesse dai risultati precedenti?
Troppo semplice! Funzionerebbe, ma non sarebbe il massimo di velocita',
intendendo non il tempo di riflessione, ma i tentativi impiegati.
> Gg.
>
> Ora vado un po' a cercare in rete, qualcuno sa se esiste un bel programmino
> scaricabile?
Programmi che permettono di giorcare a Mastermind, ne esistono in
quantita'. Programmi che giocano a Mastermind non ne ho mai visti
(esisteranno anche loro).
Piccola divagazione: a scuola avevo imparato una forma di Mastermind
giocabile su ogni quaderno a quadretti: al posto dei colori si usava un
numero di cinque cifre qualsiasi, senza alcuna limitazione. Qualche anno
fa ho rilanciato fra alcuni amici questo giochino e ha avuto un discreto
successo; abbiamo fatto qualche minitorneo e tutti l'hanno giudicato
piu' impegnativo e divertente del Mastemind classico.
Una domanda: qualcuno conosceva gia' questa variante del gioco e sa se
ha un nome particolare?
Una proposta: che ne pensate di un piccolo torneo per computer? Si
stabiliscono le regole - io preferisco la versione con le cifre - si
fissa un limite di tempo (almeno un mese) entro cui inviare i propri
"elaborati", dopodiche' si sorteggia una lunga serie di combinazioni da
risolvere, e la palma del vincitore va al programma che ha utilizzato
meno tentativi per risolverle tutte.
Direi che se ci fossero una mezza dozzina di preadesioni si puo'
organizzare il tutto.
____
/ antris
Aggiunto Sostituto Aiutante Vice Grande Wutki 1998
http://space.tin.it/cinema/tpalerm/scopone
tantris wrote in message <1e98ogj.1ag...@a-ct8-27.tin.it>...
>
>Gigi <lugi...@tin.it> wrote:
>
>> E il mitico mastermind?
>
>> Come impostare un algoritmo? Provare a generare semplicemente tutte le
>> sequenze possibili e scartare quelle non ammesse dai risultati
precedenti?
>
>Troppo semplice! Funzionerebbe, ma non sarebbe il massimo di velocita',
>intendendo non il tempo di riflessione, ma i tentativi impiegati.
massimizzare il numero di combinazioni eliminate dalla prossima giocata
(mediamente in funzione dei possibili risultati) anche questo molto forza
bruta ma dovrebbe funzionare.
>Una proposta: che ne pensate di un piccolo torneo per computer? Si
>stabiliscono le regole - io preferisco la versione con le cifre - si
>fissa un limite di tempo (almeno un mese) entro cui inviare i propri
>"elaborati", dopodiche' si sorteggia una lunga serie di combinazioni da
>risolvere, e la palma del vincitore va al programma che ha utilizzato
>meno tentativi per risolverle tutte.
con una api predefinita o ognuno se lo costruisce da se da capo? in che
linguaggio? e se io faccio un prg che semplicemente imbroglia? :)
quale e' il premio un pollo di gomma?
> http://space.tin.it/cinema/tpalerm/scopone
>
> Quale strategia seguire?
Proporre la soluzione che minimizza il numero di soluzioni residue.
Mi spiego meglio: nel caso di 4 cifre (mi riferisco alle cifre anziche'
ai colori, ma e' la stessa cosa, basta abbinare ogni numero ad un
colore) esistono 15 possibili risposte alla sequenza proposta: non c'e'
nessun numero giusto, 1 numero giusto al posto giusto, 1 numero giusto
al posto sbagliato, ecc. ecc. Le varie soluzioni possibili (inizialmente
tutte le combinazioni, man mano che si procede alcune soluzioni
diventano impossibili in base alle risposte precedenti) appartengono ad
una di queste 15 classi; contando il numero di soluzioni in ogni classe
si ricava la probabilita' che la soluzione vera appartenga a quella
classe (probabilita' a priori), quindi si puo' calcolare il numero medio
di soluzioni che saranno ancora possibili dopo aver proposto la nostra
"soluzione". A soluzioni diverse corrisponde (in generale) un diverso
numero di soluzioni residue. Bisogna minimizzare proprio questo.
FAcciamo un esempio per chiarire meglio: ammettiamo che in base alle
risposte precedenti il cerchio delle possibili risposte si restringa a:
0000, 1111, 2222, 3333, 4444, 5555, 6666, 7777, 8888, 9999.
Quale e' la proposta migliore? Una in cui compaiano tutte e 4 le cifre.
In questo modo, infatti, abbiamo il 40% delle probabilita' che ci sia un
numero giusto al posto giusto e il 60% che non ci sia nessun numero
giusto. Nel primo caso restringeremmo la ricerca a 4 possibili
soluzioni, nel secondo caso a 6. Quindi il numero medio di soluzioni
residue sarebbe 0.4*4+0.6*6=1.6+3.6=5.2
Viceversa, se avessimo proposto quattro cifre uguali, nel 10% dei casi
avremmo vinto, ma nell'altro 90% avremmo lasciato 9 soluzioni ancora
possibili, cioe' 0.1*1+0.9*9=8.2 soluzioni medie.
LA domanda piu' interessante, e a cui io ancora non ho dato risposta, e'
in quale spazio conviene cercare le soluzioni di prova. Provarle
sistematicamente tutte non e' efficente (nonostante porti sicuramente
alla soluzione ottima). L'esempio che ho proposto sembrerebbe mostrare
che la proposta ottima puo' anche non appartenere all'insieme delle
soluzioni residue (ossia ha senso proporre soluzioni che si sa essere
certamente sbagliate, ma che consento di "sfoltire" notevolmente
l'insieme delle soluzioni residue).
Ciao,
Stefano
> >Una proposta: che ne pensate di un piccolo torneo per computer? Si
> >stabiliscono le regole - io preferisco la versione con le cifre - si
> >fissa un limite di tempo (almeno un mese) entro cui inviare i propri
> >"elaborati", dopodiche' si sorteggia una lunga serie di combinazioni da
> >risolvere, e la palma del vincitore va al programma che ha utilizzato
> >meno tentativi per risolverle tutte.
>
> con una api predefinita o ognuno se lo costruisce da se da capo? in che
> linguaggio? e se io faccio un prg che semplicemente imbroglia? :)
L'api o il linguaggio di programmazione non hanno importanza, ognuno
sceglie quello che gli si confa'. Al massimo ci si potrebbe mettere
d'accordo prima su uno standard per l'introduzione dei dati.
Non dei numeri da trovare, ma delle risposte da dare al programma. E'
l'unico modo per essere sicuri che quest'ultimo non possa barare: la
soluzione non la conosce direttamente, ma i puntini o le crocette gli
vengono forniti da un operatore esterno (uno di noi fornito di un po' di
pazienza, o anche un programmino in grado di dialogare con
l'applicazione, ma preferisco la prima per lasciare piu' liberta' ai
concorrenti); il programma di suo potrebbe generare un file con le mosse
effettuate, da inviare al programmatore perche' questi possa verificare
la correttezza della prova.
> quale e' il premio un pollo di gomma?
Suvvia, un po' di fiducia... che ne dici di un'ochetta, sempre di gomma
naturalmente? :-)
>con una api predefinita o ognuno se lo costruisce da se da capo? in che
>linguaggio? e se io faccio un prg che semplicemente imbroglia? :)
io userei STDIN e STDOUT
un programma sceglie un numero e invoca l'applicativo
scritto dal concorrente, che passa in STDOUT una
possibile soluzione, quindi il programma di test
verifica la soluzione e dice "2 ok, 1 al posto
sbagliato", quindi il programma ritenta, fino a che
non trova la soluzione giusta.
>quale e' il premio un pollo di gomma?
sarebbe troppo chiedere che faccia pure "quack" alla
pressione?
Oha
--
#include <disclaimer.h>
Gigi wrote:
> E il mitico mastermind?
Anni fa, facendo considerazioni sulla neg-entropia e sulla teoria
dell'informazione, feci un algoritmo che gioca in modo ottimo a Master Mind. Il
sorgente (C) e' molto piccolo (306 linee), ed e' interessante. Mi aveva dato
soddisfazione. Ricordo che risolve qualsiasi partita nel limite di 6 mosse, con
numeri di lunghezza 4 e 6 cifre ripetibili.
Se qualcuno vuole, posso spiegarne il funzionamento a livello filosofico, poi
magari chi ne ha voglia puo' provare ad esercitarsi a farlo per conto suo.
Proprio darlo apertamente mi parrebbe di togliere il piacere a qualcuno di
arrivarci da solo.
Ciao
Emanuele
>Se qualcuno vuole, posso spiegarne il funzionamento a livello filosofico, poi
>magari chi ne ha voglia puo' provare ad esercitarsi a farlo per conto suo.
>Proprio darlo apertamente mi parrebbe di togliere il piacere a qualcuno di
>arrivarci da solo.
Direi che cosi' la cosa mi piace ;)
--
Sciasbat
Avete la "R:" di autluc o non sapete quotare?
Non stupitevi allora se non vi rispondo.
[mail:<sciasbat_at_inorbit.com>]
Caro Emanuele,
descrivi pure, a livello filosofico, il funzionamento del tuo prg. Il
comandante fara' di tutto per scriverne un listato sorgente. Ma se, fra
qualche giorno, vorrai far recapitare nella mia e-mail il tuo sorgente te ne
sarei cmq grato. Il fatto e' che sto studiando il C e un listato pronto, che
stuzzica l'interesse, e' un ottimo metodo per imparare.
Un comandante apprendista.
str...@tin.it
--- Togli ".leva" e "ufo." se vuoi rispondermi ---
--- Remove ".leva" & "ufo." if you want replay me ---
"La coerenza con se stessi e' una virtu', in cui eccellono, soprattutto,
coloro che sono privi di immaginazione."
...Vai pure.
Non aspetto altro per rispolverare la mia vecchia passione
per il basic !!!!
;-)
CiaO,
Massimo
> Non dei numeri da trovare, ma delle risposte da dare al programma. E'
>
ma... io credo che il prog. dovrebbe sapere da un lato qual e` il
numero, fare la sua puntata, quindi auto-rispondersi.
La puntata chiaramente la fa senza conoscere il numero, ma solo sulla
base delle informazioni ricevute dalle risposte.
Si potrebbero scrivere un paio di funzioni standard per tutti, che si
occupano della generazione del numero e del dialogo dell'analisi della
puntata.
Esempio di programma:
ripete N volte {
genera un numero
ripeti {
punta --> questo diventa l'unico pezzo da scrivere
verifica la puntata
} finche` non indovina
}
> l'unico modo per essere sicuri che quest'ultimo non possa barare: la
>
basta rendere pubblici i sorgenti! Nonche` ben commentati.
bye!
--
Emanuele Cesena http://www.penguinpowered.com/~ecesena
<ece...@penguinpowered.com> Attenzione all'anti-spam XXX
"Ghigliottina Peugeot: cosi' silenziosa che l'unico rumore che senti e'
l'orologio del boia."
-- Daniele Luttazzi, "C.R.A.M.P.O."
Interessante, spiega un po' come funziona...
Il modo ottimale di giocare e' quello di fare ovviamente delle domande
che dalla risposta ricavino la massima informazione.
Ora l'informazione e' massima quando l'equiprobabilita' degli
eventi possibili e' massima. In formula si tratta di massimizzare l'entropia
H = -S(log2(Pi))/n
dove la S e' sommatoria al variare degli n eventi i con probabilita' Pi e
log2 e'
il log in base 2.
Questo concetto fondamentale, sostanzialmente intuitivo, applicato alle
domande di un gioco domanda-risposta, da' come conseguenza che
le migliori domande sono quelle che ripartiscono l'insieme delle
soluzioni in parti il piu' possibile della stessa misura.
Il programma dunque non deve seguire un algoritmo logico, ma semplicemente
controllare fra tutte le possibili domande quella che dara' la massima
informazione.
Ovvero tra tutte le possibili partizioni scegliere quella a entropia massima.
Non so se sono stato abbastanza chiaro.
Come esempio piu' semplice prendiamo il gioco in cui bisogna indovinare un
numero fra 1 e 1000 in cui
come indicazione si ha soltanto se e' troppo alto o troppo basso.
La strategia migliore e' quella cosiddetta dicotomica e cioe'
tentativo 1
500
tentativo 2
250 oppure 750
tentativo 3
125 o 375 o 625 o 875
e cosi' via, perche' ripartisce i sottoinsiemi rimanenti in due parti uguali,
in altre parole si lascia la massima equiprobabilita' alla soluzione di
esistere in una parte come nell'altra.
Ciao
Emanuele
> questo e` il minimo, ma poi anche l'os... perche` qlc possa testarli
> tutti e rendere pubblici i risultati.
uhm... questo limiterebbe un po' la liberta' d'autore: io programmo su
mac, ad esempio. Scrivendo in C o in Basic potrei realizzare facilmente
un programma "portabile", ma e' proprio necessario?
> Si potrebbero scrivere un paio di funzioni standard per tutti, che si
> occupano della generazione del numero e del dialogo dell'analisi della
> puntata.
> Esempio di programma:
>
> ripete N volte {
> genera un numero
"legge un numero da un file di testo", perche' la prova sia valida i
numeri testati devono essere uguali per tutti i programmi
> ripeti {
> punta --> questo diventa l'unico pezzo da scrivere
> verifica la puntata
> } finche` non indovina
> }
>
> > l'unico modo per essere sicuri che quest'ultimo non possa barare: la
> >
> basta rendere pubblici i sorgenti! Nonche` ben commentati.
se proprio non ci fidiamo, dovrebbero essere anche ricompilati; una
funzione "pirata" si fa in fretta a nasconderla ;-)
C'e' qualcuno "super partes" che fa un regolamento?
Io propongo sempre una prova basata sul riconoscimento di un tot (10?
20? 100?) di numeri formati da 5 cifre.
Se ci appiccichi sopra la GPl e lo rendi pubblico il modno tui
ringrazierŕ e son dicuro che non te ne pentirai; se č fatto bene
probabilmente si troverŕ qualche anima buona disposta a scrivere
un'ineterfaccia grafica, e tra poco avremo anche il master mind tra i
giochini standard, accanto ai classici e ritriti giochi di carte, nonché
il tanto amato/odiato "Campo minato" nelle sue varie versioni.
--
Mauro Mazzieri
Non era off-topic. Era solo in-topic con un altro topic...
-- Mauro Mazzieri
E' stato proposto Java, che sarebbe la soluzione a tutti i ns problemi,
solo che personalmente non lo conosco. :-(
>> genera un numero
> "legge un numero da un file di testo", perche' la prova sia valida i
> numeri testati devono essere uguali per tutti i programmi
>
si`, ottimo!
> C'e' qualcuno "super partes" che fa un regolamento?
>
ok, provo con il riassumere le idee che sono saltate fuori fin qui:
Per partecipare occorre postare i sorgenti di un programma che giochi a
MasterMind.
Dato in input un numero di 5 cifre ripetibili, il programma deve
indovinarlo proponendo numeri di 5 cifre, e ricevendo come risposta una
stringa di 5 caratteri cosi` composta:
- un '*' per ogni cifra azzeccata nella posizione corretta
- un '+' per ogni cifra azzeccata, ma non nella posizione corretta
- un ' ' per ogni cifra non azzeccata.
(ho scelto dei caratteri casuali, penso sia l'ultimo dei problemi)
La stringa non da informazioni su quale numero e` '*' o '+' o ' ', ma e`
ordinata in modo da avere prima gli (eventuali) '*', poi i '+' ed infine
gli ' '.
Le cifre, anche se ripetute, vengono considerate come oggetti distinti,
ovvero in una situazione:
numero: 11234
puntata: 12345
verra` restituita la stringa '*+++ '
Ovvero il primo 1 e` azzeccato pienamente '*', e 2, 3, 4 sono si`
azzeccati, ma non nella posizione corretta.
Il secondo '1' non e` segnalato, in quanto l'1 della puntata corrisponde
al primo 1 (poiche` genera un * invece di un +).
Viceversa, la situazione:
numero: 12345
puntata: 52311
restituira` '**++ ', ovvero 2 e 3 azzeccati pienamente.
5 ed 1 (uno solo dei due) sono invece presenti nel numero, ma la
posizione non e` corretta.
(spero che le regole che ho esposto siano le regole universali di MM...
cmq non c'e` da preoccuparsi della difficolta` di calcolare la stringa
del risultato, perche` sara` una funzione uguale per tutti ad
occuparsene).
I sorgenti devono essere scritti (bene) in C ANSI e commentati.
Per chiunque non conosca il C o per vari motivi sia impossibilitato ad
usarlo, puo` scrivere il sorgente in un altro linguaggio, purche` ben
commentato. Eventualmente si accettano anche programmi in pseudo-codice
(ma cerchiamo di ridurre al minimo).
Il programma conterra` una serie di routine standard per l'input dei
dati, la verifica della puntata, e l'output dei risultati, che saranno
scritte non appena il regolamente sara` accettato (se non sara`
abbattuto).
Cio` che sara` da realizzare e` invece la funzione che si occupa di fare
la puntata.
Non ci sono limiti di righe di codice, ne` di variabili utilizzate.
I programmi saranno poi compilati ed eseguiti da un'unica persona. La
piattaforma sulla quale saranno eseguiti dipendera` dalla maggioranza.
bye!
--
Emanuele Cesena http://www.penguinpowered.com/~ecesena
<ece...@penguinpowered.com> Attenzione all'anti-spam XXX
Due bimbi parlano: "Io per Natale mi faccio regalare un trenino
elettrico, e tu?". L'altro: "Io una scatola di Tampax" . "E che
cos'e'?". "Non lo so, ma so che si puo' giocare a tennis, saltare,
nuotare, sciare e fare tante altre cose".
-- Da it.hobby.umorismo
OK, tutto abbastanza logico, si può fare un parallello con il classico
gioco delle pesate (indovinare qual'è la moneta sballata con n pesate), si
tratta dello stesso tipo di problema: massimizzare l'informazione che
otteniamo da ogni pesata.
Il problema è come farlo in modo efficiente.
> Il programma dunque non deve seguire un algoritmo logico, ma
semplicemente
> controllare fra tutte le possibili domande quella che dara' la massima
> informazione.
> Ovvero tra tutte le possibili partizioni scegliere quella a entropia
massima.
Tu proponi di controllare tutte le possibilità, che è la maniera più ovvia,
il problema è che potrebbe essere lento se i casi sono parecchi, quanto
impiega in media il tuo programma, te lo ricordi?
Problemi eventuali: meglio massimizzare l'entropia sempre e comunque oppure
minimizzare il caso peggiore? Oppure si ottengono le due cose con la stessa
mossa?
E' possibile che, come può succedere negli scacchi, la mossa che sembra la
migliore in realtà poi non lo sia?
E comunque questi sono problemi che riguarderanno gli aspiranti
programmatori.
Per i concorrenti:
Abbiamo dunque stabilito che le caselle sono 5?
E i colori (o i numeri) quanti sono?
Il punteggio come si stabilisce? Minor numero di tentativi totali su tutti
i giochi?
5 caselle non sono tante, uno potrebbe sviluppare l'albero completo di
gioco e memorizzarlo, lo consentiamo? Ovviamente no, sennò dove sta la
sfida?
Quindi le librerie sono completamente bandite? Oppure è consentita una
apertura fissa già programmata?
Il gioco non è molto complesso quindi è possibile che due o più programmi
trovino l'algoritmo migliore, quindi avranno lo stesso punteggio, a questo
punto che si fa, si conta il tempo impiegato?
Gg.
Questo qui sopra e' l'output finale del mio prototipo di programma
"MMSolutor" (wow!). Il meccanismo e' da perfezionare, ma il concetto e'
chiaro. Delle ultime due cifre la penultima e' il numero totale di
tentativi, l'ultima conta invece le soluzioni trovate (100; mi sembra il
minimo "probante"; 1000 sarebbe meglio ancora, pero' la fatica del
giudice comincerebbe a farsi "improba". Il meccanismo e' ancora un po'
grezzo, ma spero di raffinarlo. Nella main() sono presenti queste righe:
char mm_numero[5]
int i;
FILE *fp, *fopen();
fp = fopen("infile.txt", "r") /* apre il file d'input */
for(i =1; i < 101; h++) /* da cui legge 100 nri */
{
fscanf(fp,"%s", mm_numero);
... (et cetera)
Nella stessa cartella del programma dev'essere presente "infile.txt",
che contiene almeno 100 numeri generati casualmente, in formato ascii.
L'antidoping (cioe': l'esame del codice) andrebbe riservato al programma
vincente.
Per rispondere alla preoccupazione di Gigi, che teme un programma che
esamini massicciamente ogni possibilita', darei un tempo massimo
d'esecuzione (100 soluzioni in un quarto d'ora va bene?) al di la' del
quale scattano le penalizzazioni. Per eventuali ex-aequo propongo lo
spareggio.
Resta solamente da stabilire il giudice, il tempo massimo per l'invio
dei programmi e (dimenticavo!) il premio al vincitore:
va bene a tutti l'ochetta di gomma che fa quack alla pressione?, oppure
un pollo, sempre di gomma, ma con carrucola incorporata...
tantris wrote in message <1e9pvxp.124...@a-ct6-12.tin.it>...
>Per rispondere alla preoccupazione di Gigi, che teme un programma che
>esamini massicciamente ogni possibilita', darei un tempo massimo
>d'esecuzione (100 soluzioni in un quarto d'ora va bene?) al di la' del
>quale scattano le penalizzazioni. Per eventuali ex-aequo propongo lo
>spareggio.
io ho fatto un primo risolutore (semplice) che appunto esamina ogni
possibilita'
per la versione 5 buchi 6 colori.100 soluzioni se le mangia in un paio di
minuti
e ha una performance media di soluzioni in 5 tentativi (circa), mi sa che
dovremmo
complicare un pochino il problema..
>Resta solamente da stabilire il giudice, il tempo massimo per l'invio
>dei programmi e (dimenticavo!) il premio al vincitore:
.mau. vero che vuoi fare il giudice? O vuoi partecipare? Tempo direi un
mese
>
>va bene a tutti l'ochetta di gomma che fa quack alla pressione?, oppure
>un pollo, sempre di gomma, ma con carrucola incorporata...
...calmi tutti se non c'e' il pollo in premio io non partecipo.
Credo che l'unico premio possa essere il classico quarto d'ora di
notorieta'.
Ciao, Roberto
Io direi piuttosto di contare il tempo impiegato a parità di tentativi,
comunque si può porre anche un tempo limite.
Dunque si è stabilito 5 caselle con 10 cifre (colori) ?
Chi sono i candidati? Così magari ci scriviamo tra di noi e non riempiamo
il NG di mail, scriviamo solo regolamento e risultati.
Ultima cosa: mosse preprogrammate? Tipo apertura fissa... sono consentite o
no?
Secondo me l'apertura fissa si può concedere, tanto il programma proporrà
comunque sempre la stessa, è un risparmio di tempo.
Gg.
(O senno`, evitare le ripetizioni??)
bye!
--
Emanuele Cesena http://www.penguinpowered.com/~ecesena
<ece...@penguinpowered.com> Attenzione all'anti-spam XXX
"... Dopo tutto, tutto cio' che lui fece fu legare insieme un sacco di
vecchie e ben note citazioni."
-- H. L. Mencken, su Shakespeare
> Chi sono i candidati? Cosě magari ci scriviamo tra di noi e non riempiamo
> il NG di mail, scriviamo solo regolamento e risultati.
Non penso che it.fan.dewdney abbia problemi di overposting :-) anzi
magari una buona iniezione di messaggi puo' spingere un po' le
statistiche...
--
Ale Radici | mon-fri: rad...@yoyomail.com (no attach)
"La vita non e' solo un percorso per evitare il dolore." D.Carver
: > Chi sono i candidati? Cosě magari ci scriviamo tra di noi e non riempiamo
: > il NG di mail, scriviamo solo regolamento e risultati.
:
: Non penso che it.fan.dewdney abbia problemi di overposting :-) anzi
: magari una buona iniezione di messaggi puo' spingere un po' le
: statistiche...
No.
Niente tornei in linea, grazie.
.mau.
> : > Chi sono i candidati? Cosě magari ci scriviamo tra di noi e non riempiamo
> : > il NG di mail, scriviamo solo regolamento e risultati.
> :
> : Non penso che it.fan.dewdney abbia problemi di overposting :-) anzi
> : magari una buona iniezione di messaggi puo' spingere un po' le
> : statistiche...
>
> No.
> Niente tornei in linea, grazie.
D'accordo.
Visto che sono stato il primo a lanciare la proposta, chiedo agli
interessati mi lascino il loro e-mail. Non appena ci saremo messi
d'accordo tra noi e chiariti i possibili problemi , posteremo qui il
"bando", che potrebbe anche essere crosspostato su qualche altro ng
(quali, .mau.?)
Altre risposte rapide:
(a Gigi) mosse preprogrammate, perche' no? Ci vuole bravura anche a
scegliere la migliore "libreria" possibile.
(a Roberto Corda) il suo sistema (5 buchi 6 colori) prevede 7776
combinazioni diverse; parecchie di meno percio' di quello proposto (5
cifre decimali, cioe' 5 buchi, 10 colori) che ha 100.000 possibili
soluzioni.
____
/ antris
Aggiunto Sostituto Aiutante Vice Grande Wutki 1998
"in vento et rabida oportet scribere aqua"
Scherzi?... Ne esistono, eccome !...
(nel frattempo ti sarai documentato, credo !... :-)))))
Una delle strategie più semplici, ma efficaci è, ad esempio,
fare le prime quattro mosse con degli schemi tipo:
AABB
BABA
CCDD
DCDC
(cambiando ad ogni partita i numeri o i corrispondenti colori, per
non dare suggerimenti all'avversario in caso di avversario umano)
e poi, generare tutte le combinazioni che soddisfano TUTTE le
risposte date a quelle quattro mosse.
Da questo elenco prendere una combinazione a caso ed utilizzarla
come mossa successiva.
Scartare tutte le combinazioni non compatibili con l'ultima risposta,
e sceglierne un'altra a caso tra quelle rimaste, fino a trovare la
soluzione.
A dispetto delle regole semplicissime, la strategia è abbastanza efficace.
Ovviamente non è la migliore...
--
Er Roscio.
> > Programmi che permettono di giorcare a Mastermind, ne esistono in
> > quantita'. Programmi che giocano a Mastermind non ne ho mai visti
> > (esisteranno anche loro).
>
>
> Scherzi?... Ne esistono, eccome !...
Difatti non avevo scritto che non esistono, piu' semplicemente ceh non
ne conoscevo.
> (nel frattempo ti sarai documentato, credo !... :-)))))
No: non mi sono documentato. Preferisco non farmi influenzare :-))))
>
> Una delle strategie più semplici, ma efficaci è, ad esempio,
...
> A dispetto delle regole semplicissime, la strategia è abbastanza efficace.
> Ovviamente non è la migliore...
Era piu' o meno questa la strategia prospettata da Gigi nel primo
messaggio sull'argomento. Ovviamente, per migliorarla, bisogna stabilire
un criterio migliore nella casualita' nella scelta del numero di test.
Inoltre: da che punto occorre limitare tale scelta ai soli numeri
"possibili"?
Mi spiego: se il risultato di un tentativo qualsiasi fosse 4-0 (quattro
numeri giusti al posto giusto) questo lascerebbe 45 soluzioni possibili;
sceglienfdo una di queste si avrebbe una possibilita' su 45 di
indovinare, pero' mediamente - avevo fatto un conto preciso ma non me lo
sono appuntato, comunque e' facile da verificare - usando uno di questi
numeri, lo scarto e' di una dozzina circa. Esistono, per contro, dei
numeri non compresi nell'elenco delle possibili soluzioni che, se da una
parte danno zero probabilita' di indovinare, dall'altra garantiscono una
media di scarto superiore a 20.
Quale conviene usare?
E' un problema di strategia "aperto".
____
/ antris
Aggiunto Sostituto Aiutante Vice Grande Wutki 1998
Questo indirizzo e' sbagliato !
Esiste un indirizzo corretto ?
Altrimenti,
come faccio a partecipare !
Ciao
Paolo Zavarise