Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Algoritmi - Algoritmo estrazioni in blocco java
Forum - Algoritmi - Algoritmo estrazioni in blocco java

Avatar
blujeans (Normal User)
Rookie


Messaggi: 28
Iscritto: 05/10/2013

Segnala al moderatore
Postato alle 16:19
Giovedì, 06/11/2014
Ho bisogno di un aiuto con un algoritmo che non riesco a ascrivere/generalizzare.
In una casella di testo ( JTextParola ) l'utente inserisce una parola
In un altra casella di testo ( JTextColonne ) l'utente indica il numero di colonne.
Devo anagrammare le parole e mostrarle in una textarea nel modo che vi mostrerò.

Mi spiego con un esempio:

JTextParola        ->    VASO (4 lettere)
JTextColonne    ->    2

righe totali =  combinazione di 4 in 2

\|1|2|
1|V|A|
2|V|S|
3|V|O|
4|A|S|
5|A|O|
6|S|O|

JTextParola        ->    ABCDE (5 lettere)
JTextColonne    ->    3

righe totali =  combinazione di 5 in 3

\ |1|2|3|
1 |A|B|C|
2 |A|B|D|
3 |A|B|E|
4 |A|C|D|
5 |A|C|E|
6 |A|D|E|
7 |B|C|D|
8 |B|C|E|
9 |B|D|E|
10|C|D|E|

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 23:51
Giovedì, 06/11/2014
è un semplice anagramma che non comprende tutte le lettere della parola; trasformi la parola in una matrice di caratteri e vai giu di combinazioni e man mano le inserisci nel texbox
0|0|0
0|0|1
0|0|2
ecc
sceglie te come impostare la logica delle combinazioni.
Puoi basare il calcolo della selezione delle lettere usando un conteggio di base n, dove n è il numero di lettere della parola data.
es
parola "bonsai" => 2 lettere per gli anagrammi
avrai una matrice di 6 caratteri
e potrai impostare la combinazione come un semplice numero di base 6

00 01 02 03 04 05 10 11 12 13 14 15 20 21 23 ... 55

PM Quote
Avatar
blujeans (Normal User)
Rookie


Messaggi: 28
Iscritto: 05/10/2013

Segnala al moderatore
Postato alle 14:28
Domenica, 09/11/2014
ma se io ho la stringa "abdce" e devo prendere 3 lettere alla volta ho un totale di 10 righe con le seguenti combinazioni

a = 0
b = 1
c = 2
d = 3
e = 4

012 -> abc
013 -> abd
014 -> abe
023 -> acd
024 -> ace
034 -> ade
123 -> bcd
124 -> bce
134 -> bde
234 -> cde

devo ottenere per forza le lettere in questa sequenza

se volessi prendere 4 lettere otterrei 1 riga

01234 -> abcde

se volessi prendere 1 lettera otterrei 4 riga

0 -> a
1 -> b
2 -> c
3 -> d
4 -> e

il numero di righe è dato dalla combinazione senza ripetizione del numero di lettere totali con il numero di lettere prese.
non so se mi sono spiegato

PM Quote