richiesta bla-bla :: i nomi di dio

supponiamo di prendere le 26 lettere dell'alfabeto e di volerle disporre in gruppi di 10 (es. GJRTQPALNC) senza ripetizioni (quindi no "GGF...") e scartando tutte le combinazioni che contengono esattamente le stesse lettere di altra già prodotta variando solo l'ordine (quindi se c'è abcdefghil non può esserci l'inversa lihg..., o comunque nessuna combinazione con le stesse 10 lettere).

quante combinazioni valide ci saranno?
e come si fa a farle uscire?

[fork()]

è venerdì sera, non hai davvero niente di meglio da fare?

scotto
[fork()]

cioè, c'è un modo per non fare puramente il confronto lettera per lettera di ogni nuova combinazione con tutte quelle già prodotte?

scotto
[fork()]

e tu hai qualcosa di meglio da fare?

scotto
[fork()]

ps. per dire, c'è qualche teorema del cazzo in base al quale i prodotti di due serie di numeri (presi dallo stesso pool di consecutivi e nella stessa quantità) sono uguali solo se i numeri sono uguali, indipendentemente dall'ordine?
in questo caso da ogni stringa si potrebbe ottenere un numero e confrontare quelli. forse si fa prima.

scotto
[fork()]

forse coi numeri primi. se a ogni lettera associ un numero primo, il prodotto di 10 primi può essere uguale a quello di un'altra combinazione solo se i numeri sono gli stessi, ma in ordine diverso. perché se il risultato fosse ottenibile con la moltiplicazione di 10 primi diversi, vorrebbe dire che lo stesso numero è scomponibile in due serie diverse di primi.

scotto
[fork()]

le combinazioni senza ripetizioni dovrebbero essere 26 fattoriale diviso 10fatt x 16 fatt, ossia poco più di 5 milioni. ogni combinazione ne ha 9 equivalenti (stesse lettere, ordine diverso) quindi quelle uniche dovrebbero essere poco più di cinquecentomila.

[fork()]

la domanda matematica è legittima e probabilmente si può cavare una formula ma credo sia più facile farlo con un codice che produce randomizzazioni, tipo gli anagrammi, ponendo le condizioni che dici ovvero dieci lettere e l'assenza di risultati identici (che vengono cassati). così facendo ottieni per forza bruta (ma in un amen) quello che cerchi. sicuramente chi capisce di codice te lo può dire, non io.
DVRITIAM CORDIS VESTRIS SAXA TRAERE MERVISTIS
Io sono solito stampare in formato A3 col plotter i post di rodolfo per poi arrotolarmeli attorno al corpo nudo e gettarmi nei letamai del circondario. (supermaz)

[fork()]

adesso non sto a impazzire ma è una cosa evidentemente facile da fare, tant'è che roba simile se ne trova:
http://www.dave-reed.com/Nifty/randSeq.html
oppure
https://www.random.org/strings/
DVRITIAM CORDIS VESTRIS SAXA TRAERE MERVISTIS
Io sono solito stampare in formato A3 col plotter i post di rodolfo per poi arrotolarmeli attorno al corpo nudo e gettarmi nei letamai del circondario. (supermaz)

scotto
[fork()]

entrambi generano combinazioni con ripetizioni interne, quindi non vanno bene. se fosse stato facile trovare quello che chiedo, non avrei chiesto. in ogni caso non mi serve un generatore online ma l'algoritmo di generazione.

scotto
[fork()]

forse il sistema più veloce per evitare di fare confronti è generare una stringa da 10, poi generare tutte le sue varianti senza una delle sue lettere, poi senza due etc.
una volta prodotte tutte le stringhe se ne scelgono tot a caso.

scotto
[fork()]

in realtà basta prendere a, poi una qualsiasi tranne a. poi si prende b e una qualsiasi senza a o b, poi c etc. ottenute queste coppie, si aggiungono a ognuna 8 lettere a caso tranne quelle della coppia e senza ripetizioni. il risultato sono tutte le combinazioni e differiscono tutte almeno di 1 lettera.

[fork()]

Calcolo combinatorio.
26x25x24..×17 combinazioni.

Alla prima scelta hai 26 possibilità, all'ultima 17 pari a 26 meno le 9 che hai già usato.
Augh
giuro che il mio unico scopo nel resto dei miei anni diventera' scoprire dove abiti e piantarti un cacciavite in un occhio ('u Prufissuri)

Chi urla di piu' la vacca e' la sua

Colpa mia che mi ostino ancora a dire cose intelligenti su Internet

[fork()]

https://it.wikipedia.org/wiki/Combinazione
si definisce combinazione di n elementi presi k alla volta (oppure di n elementi di classe k) ogni sottoinsieme di k oggetti estratti da un insieme di n oggetti. Se si impone la condizione che una combinazione non può avere un elemento ripetuto si parla di combinazioni semplici, altrimenti di combinazioni con ripetizione. Nel primo caso deve essere ovviamente k ≤ n.

In entrambi i casi i sottoinsiemi si considerano indipendenti dall'ordine degli elementi.

Wolfram alpha mi dice che sono un pezzente e che devo pagare se voglio che mi calcoli Subsets[{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}, {10}]
asphtimer

[fork()]

Dovresti calcolare le combinazioni e sottrarre il numero di permutazioni possibili. Viene qualcosa come Un miglione essecento.

[fork()]

quale parte di "non vanno bene le combinazioni che hanno gli stessi elementi ma in ordine diverso" non è chiara?

[fork()]

La parte in cui dice In entrambi i casi i sottoinsiemi si considerano indipendenti dall'ordine degli elementi.
asphtimer

[fork()]

le combinazioni di 2 lettere senza ripetizioni e senza speculari (ab-ba) sono solo 325, ossia 26*26 -26 /2, o 25+24+23 etc.

[fork()]

con 5 posizioni, sarebbero 65780

[fork()]

con 10, sarebbero 5.311.735, che poi è il numero che avevo calcolato all'inizio (poco più di 5 milioni).
mi era sfuggito il fatto però che quel numero escludeva già i set con gli stessi elementi in ordine diverso.
quindi ora mi serve solo la routine per generarli.

[fork()]

che è appunto il fattoriale di 26 diviso il fattoriale di 24 (numero di combinazioni di due lettere contando anche l'ordine delle lettere) diviso ancora il fattoriale di 2 (numero in cui si possono ordinare diversamente le due lettere).

I cinque milioni di combinazioni di cui parli all'inizio le hai ottenute facendo esattamente questo calcolo e sono già pulite dalle possibili ripetizioni delle stesse lettere in ordine diverso, solo che non te ne sei accorto. L'algoritmo di generazione in che linguaggio lo vuoi? Secondo me in python te la cavi facile usando una lista ( ͡° ͜ʖ ͡°)


ho perso tempo a cercare la faccia di cazzo e quindi ci eri già arrivato da solo, ti dico bravo.
asphtimer

[fork()]

però bisogna comunque generarle tutte, assegnare a ognuna un numero e poi pescarle a caso.
in effetti una volta generate il più è fatto.

[fork()]

dai vai a generarle
DVRITIAM CORDIS VESTRIS SAXA TRAERE MERVISTIS
Io sono solito stampare in formato A3 col plotter i post di rodolfo per poi arrotolarmeli attorno al corpo nudo e gettarmi nei letamai del circondario. (supermaz)

[fork()]

fa tutto parte di un rito.
comunque non posso usare python.

[fork()]

rebis::1774539

è venerdì sera, non hai davvero niente di meglio da fare?
scotto::1774580

fa tutto parte di un rito.

comunque posso farti usare il mio python.

“Ma non è meglio se pensi solo alla fica, ritardato di merda?”
(Il tubone)

[fork()]

Copia l'algoritmo in un altro linguaggio allora, è in una delle pagine che ti ho linkato
asphtimer

[fork()]

scopto, se ho ben capito il problema :

- Si parte da un set di 26 elementi (le lettere dell'alfabeto)
- Da questo set iniziale vuoi estrarre tutte le combinazion possibili di subset da 10 lettere con le seguenti regole:
. Ogni subset non puo' contenere due volte la stessa lettera
. Due subset non possono contenere le stesse lettere (in qualunque ordine)

Corretto?

[fork()]

Pero' tu vuoi solo sapere il numero di tutte le combinazioni possibili o vorresti anche listarle?

Nel primo caso ho trovato questa risposta (ma con gruppi di tre)

Quindi nel tuo caso dovrebbe essere 26 * 25 * 24 * 23 * 22 * 21 * 20 * 19 * 18 * 17, che mi pare sia la risposta che ti ha gia' dato maxdanno

Nel secondo dovresti specificare che linguaggio puoi utilizzare

asphalto FAQ
categorie Espandi/contrai