|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2003
Messaggi: 126
|
piccola sfida
Come sanno bene gli appassionati di programmazione ( amatoriali o professionisti che siano) la cosa più stimolante e trovare la soluzione di problemi più o meno complessi, a prescindere dal linguaggio che si usa per la codifica, che alla fine è la parte "banale".
Penso di aver trovato un giochetto stimolante, magari la soluzione è una c*****a e io non ci sono arrivato, ma non credo. Sto seguendo un corso di elettrotecnica, la odio, devo pure passarmi il tempo!!! ![]() Il gioco è questo: si ha a disposizione un matrice 10x10, quindi 100 caselle e si deve riempire con i numeri da uno a cento seguendo le seguenti regole: - si piazza l'1 in una pos a scelta per gli altri numeri si seguono 2 semplici regole: - spostamenti verticale e orrizzontale saltando 2 caselle -spostamento obliquo saltando 1 casella. Es.: __________________ |_1_|___|__|_ 2_| |___|_4_|__|____| |___|___|__|____| |___|___|__|_3__| |___|___|__|____| ...ho messo l'1 nella casella(1,1) ho saltato due caselle verso destra e messo il 2, poi due caselle verticalmente e messo il 3 e una casella obliquamente e messo il 4, e così via... Preciso che non mi è mai riuscito, ma mi hanno assicurato che si può fare! Fatto stà che la soluzione in qualche modo la vorrei vedere! Scartato subito il caso di scrivere direttamnte un algoritomo che si basi su un certo ragionamento, altrimenti lo avrei risolto anche sulla carta, ho pensato di passare attraverso un algoritmo di BRUTE FORCING che vi desrivo sommariamente: Si piazza a caso l'1 Dipendentemente dalla posizione del numero si sceglie a caso la pos in cui mettere il numero successivom se non è occupata bene, altrimenti se ne sceglie un'altra, e così via tendo memoria delle pos occupate e finchè non è stato inserito il numero 100. Ma.... Quanto ci metterà? Vi chiedo di aiutarmi soprattutto perchè è un anno che non scrivo una riga di codice ( non mi ricordo la sintassi!) Ciao e grazie!!! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
dai a2000 è pane per i tuoi.....denti ?
![]() onestamente non ho capito come distribuisci i numeri nella matrice |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Oct 2003
Messaggi: 126
|
L'unica cosa da sapere è che orrizzontalmente e verticalmente si saltano 2 caselle e obliquamente 1, naturalmente la matrice non si può intendere appaoggiato su una sfera, quindi i bordi sono MURI!
|
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Codice:
x x x x x | x x x x x x x x x x | x x x x x x x x x x | x x x x x x x x 50 x | x 51 x x x x x x x 26 | 75 x x x x ---------------------------------------------------------------------------------------------- x x x x 100 | 1 9 20 2 12 x x x 76 x | 15 25 5 16 22 x x x x x | 7 18 13 8 19 x x x x x | 4 10 21 3 11 x x x x x | 14 24 6 17 23 Ultima modifica di a2000 : 13-11-2003 alle 22:56. |
![]() |
![]() |
![]() |
#5 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
gli altri tre quadranti si completano analogamente al 4° quadrante (in basso a destra).
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
|
Re: piccola sfida
Quote:
tu invia la soluzione in uno pseudo linguaggio e poi te la traduciamo ![]() ![]() |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
![]() |
![]() |
![]() |
#8 | |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Quote:
combinatorio strategico Soluzione combinatoria si determina la soluzione in base a una analisi più o meno semplice (simmetria, teoremi) del problema. nel caso in eseme: 100 arbitrario, perchè non 10, 50 o 1000 forse problema a celle legate simmetria frazionamento in celle secondo assi di simmetria numerazione simmetrica crescente e decrescente soluzione trovata Soluzione con regole di strategia la soluzione si determina passo passo secondo regole di strategia che massimizzano una "funzione di merito" che tiene conto di tutte le possibilità per n passi successivi. per esempio: ad ogni passo scelgo la cella che ha il minor grado d'entrata posso ibridare la strategia con un criterio di simmetria decidendo di numerare alternativamente in senso crescente e decrescente. la ricerca di soluzioni con regole di strategia è semplice da implementare ma non "vede" oltre gli n passi analizzati dall'algoritmo e trova soluzioni connesse a quella iniziale. |
|
![]() |
![]() |
![]() |
#9 | |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Quote:
è un'algoritmo semplice ma della razza di quelli difficili (combinatori). gli algoritmi più facilmente adottati (p.es. negli scacchi) sono di tipo strategico con massimizzazione di una funzione obiettivo. soluzione a cui probabilmente accennava Strat e che si può fare anche in questo caso. Un problema con analogie è quello della riduzione dei sistemi per il totocalcio. |
|
![]() |
![]() |
![]() |
#10 | |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Re: piccola sfida
Quote:
elettrotecnica è bellissima! deduttiva e pulita: da quattro equazioni si ricava tutto. |
|
![]() |
![]() |
![]() |
#11 |
Member
Iscritto dal: Oct 2003
Messaggi: 126
|
x a2000
grazie mille, anchio avevo provato con delle simmetrie, ma arrivavo sempre a 98. Complimenti! xrecoil io accennavo ad un algoritmo di forza bruta, che credo chiunque sia in grado di scrivere, semplicemente per avere una soluz da studiare in modo da scrivere poi un codice ragionato, è questa la cosa tosta! Mi hai frainteso! Ciao a tutti! |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
è da quasi 2 anni che lo faccio nelle ore di italiano e latino (ovviamente a mano) e mi è riuscito solo 3 volte!
non avevo mai pensato di farlo fare a un pc, appena trovo il tempo provo! ciao |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Sep 2002
Città: vinci-spicchio
Messaggi: 530
|
l'algoritmo sembra semplice, ditemi se ho capito bene, questo giochetto non funziona tutte le volte, vero? basta mettere un ciclo while che lo ripete finchè casualmente l'uno non viene messo nella posizione giusta a random e il giochetto funziona. magari impieghera qualche secondo ma dovrebbe funzionare.
__________________
Intel Pentium DualCore E2140 1,60 GHz , Asus P5LD2 R2.0,Sapphire x600xt 128Mb,hauppauge winTV,2x256Mb Ddr2 Vitesta 533Mhz,western digital caviar 160gb, seagate 20gb 5400giri, maxtor 40gb 7200giri, dvd+-rw gigabyte(BTC) 4x,Samsung writemaster dvd duallayer 18x , edimax wireless<-->router D-link G604T. |
![]() |
![]() |
![]() |
#14 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
tel chì !
per esempio questo è generato in automatico con un algoritmo di 30 righe ![]() Codice:
1 54 41 2 55 42 23 30 43 22 62 18 15 63 19 14 83 20 13 84 40 3 60 57 99 29 56 100 28 31 16 53 67 17 82 68 24 81 44 21 61 58 94 64 59 93 86 32 12 85 39 4 79 69 98 80 70 97 27 34 75 52 66 76 91 65 25 92 45 8 49 72 95 50 71 96 87 33 11 88 38 5 78 37 6 77 36 7 26 35 74 51 48 73 90 47 10 89 46 9 |
![]() |
![]() |
![]() |
#15 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
la regola di scelta è quella suddetta del minimo grado di uscita.
|
![]() |
![]() |
![]() |
#16 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
ah, dimenticavo, VBA-Excel rulez !!
![]() |
![]() |
![]() |
![]() |
#17 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
e questa è un'altra
![]() Codice:
74 51 48 73 98 47 6 97 46 5 38 1 78 37 2 77 36 3 26 35 49 72 95 50 71 96 87 33 7 88 75 52 66 76 99 65 25 100 45 4 39 16 79 69 90 80 70 89 27 34 61 58 94 64 59 93 86 32 8 85 12 53 67 17 82 68 24 81 44 21 40 15 60 57 91 29 56 92 28 31 62 18 11 63 19 10 83 20 9 84 13 54 41 14 55 42 23 30 43 22 |
![]() |
![]() |
![]() |
#18 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
un'altra ancora:
![]() ![]() Codice:
15 54 41 14 55 42 23 30 43 22 62 18 1 63 19 2 83 20 3 84 40 13 60 57 99 29 56 100 28 31 16 53 67 17 82 68 24 81 44 21 61 58 94 64 59 93 86 32 4 85 39 12 79 69 98 80 70 97 27 34 75 52 66 76 91 65 25 92 45 8 49 72 95 50 71 96 87 33 5 88 38 11 78 37 10 77 36 9 26 35 74 51 48 73 90 47 6 89 46 7 |
![]() |
![]() |
![]() |
#19 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
voletelamacchinetta? |
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
|
ma usi un algoritmo random o ha un criterio?
niente vba e exel, non ne sò niente, senza contare che sul pc non li ho nemmeno ![]() ciao |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:53.