Problema delle 10 regine

Buongiorno, da poco ho iniziato a utilizzare Arduino per passatempo e per imparare ad usare.
Devo riuscire a risolvere il problema delle 10 regine, in pratica abbiamo una scacchiera 10x10 e io devo posizionare 10 regine all'interno della scacchiera senza che queste si mangino a vicenda. Per chi non sapesse la regola della scacchiera la regina si può muovere in orizzontale, verticale e in obliquo.
Questo problema è da trasmettere attraverso il monitor seriale.
chiedo il vostro aiuto per risolverlo.
grazie, arrivederci.

Buongiorno,

prima di tutto ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana ... la prossima volta potrebbe venire direttamente eliminato, dopo di che ...

... essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nel rispetto del suddetto regolamento nessuno ti risponderà (eventuali risposte verrebbero cancellate), quindi ti consiglio di farla al più presto. :wink:

Ma non era delle 8 regine ? ? ? ... ora sono diventate 10 per aumentare il numero delle possiblità ?

Comunque dubito che una piccola MCU come quella di Arduino sia adatta alla ricerca delle soluzioni ... parli di una cosa che lavora ad 8 bit, a 16 MHz e con SOLO 2 KB di SRAM ... :roll_eyes:

Guglielmo

Se cerchi su Google "8 queen problem" trovi una marea di link sia che spiegano la teoria sia che danno degli esempi in Python.

Guglielmo

Adatta magari no...

Ma sarebbe una bella sfida fare "qualcosa" che possa esplorare l'universo delle possibilità usando una UNO
Sono convinto che si possa far stare nelle risorse disponibili, certo non bisogna avere fretta...

Per prima cosa serve trovare una rappresentazione "compatta" della scacchiera
Poi ....

Ho idee, magari ci penso bene...

Dire Arduino è un pò poco. E' come dire... vorrei andare in macchina da torino a madrid con una fiat.. :grin:
Arduino Uno, Mega, Nano, etc. sono microcontrollori pensati per gestire circuiti/sensori.
Già mettergli una shield ethernet permette di fare cosette web, ma mica roba stratosferica.
Se vai su ESP hai qualcosa di più come risorse.
Ma, secondo me, "esercizi" di logica come quello proposto, mi pare siano più pane per piattaforme meno "pensate" per gestire HW, ad esempio Raspberry. My personal opinion.

Io direi: problema delle N(con n intero positivo maggiore di zero e definito a runtime) regine con una UNO senza altro HW aggiuntivo

Altro che torino-madrid con una Fiat

Assomiglia di più a Porto-Vladivostok con una 2CV 4

Ma se hanno fatto la Parigi Pechino con una Itala, io a vladivostock ci arrivo con la 2cv...

Comunque non ho capito bene una cosa "jorf"
Vuoi piazzare una regina alla volta e sapere dove puoi piazzare la prossima oppure vuoi che venga elaborata una soluzione ?

P.S. di base una regina non può avere un'altra nelle celle adiacenti (verticale, orizzontale o diagonale) . Almeno a +2row/+1col oppure +1row/+2col ma mai +2col/+2row

... gente, NON reinventate l'acqua calda ... se cercate come ho detto, trovare mille spiegazioni del problema ed altrettante soluzioni ... divertitevi voi a cercare di farle girare su Arduino perché io non ho proprio tempo.

Ricordate che NON è Arduino il sistema per fare certe cose (... è nato per fare "controlli", non risolvere questo genere di problemi) ... concordo con nid che su raspberry si fa tutto molto più elegantemente e, sicuramente, più velocemente.

Guglielmo

poi si dovrebbe decidere la casella di partenza della prima regina in modo da poter variare lo schema

ovvio

parimenti ovvio che non si può trattare di una soluzione "ricorsiva"
Arduino non ha la potenza per effettuare una ricorsione così profonda a meno che non si tratti di "ricorsione in coda" ma non ho voglia di cimentarmi in questo

una soluzione iterativa, a forza bruta, anche se non interamente a forza bruta (altrimenti basta semplicemente ciclare tutte le possibili configurazioni di scacchiera...)

insomma, oggi ci penso...

la prima regina va sulla prima casella quindi la prima riga e la prima colonna non possono avere un altra regina.

Non è detto, sulla prima riga di certo

Ma potrebbe non essere in prima colonna,
che comunque io penso che in una scacchiera di lato H le H "famiglie" di soluzioni ognuna con la prima regina in colonne successive siano tutte "traslazioni" della prima famiglia

Non ne sono sicuro, ma lo considero probabile...

Buongiorno, abbiamo 10 regine da posizionare in una scacchiera 10x 10

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.