Reconstituer un mot qui a été mélanger

Reconstituer un mot qui a été mélanger - VB/VBA/VBS - Programmation

Marsh Posté le 18-04-2003 à 19:10:58    

Salut tlm  :hello: , jvoudrais savoir si c'etait possible de reconstituer un mot dont les lettres ont été mélangé auparavant en utilisant si besoin est une list de mot a coté exemple :
 
Le mot est Orange Le mélange donne : nagOre en utilisant a coté une list qui contient ce mot
 
ou alors si vous avez d'autres idées et soltion ca m'aiderais car je cherche depuis pa mal de temps  :cry:

Reply

Marsh Posté le 18-04-2003 à 19:10:58   

Reply

Marsh Posté le 18-04-2003 à 21:49:46    

C'est assez simple à faire, mais ça sent trop le TP pour que je te file la réponse.
Réfléchit un peu, la solution est enfantine.

Reply

Marsh Posté le 18-04-2003 à 22:43:44    

bah les mots et le nombre de lettres sont aléatoire alors je vois pas bien comment faire... jsuis désolé aide moi stp :sweat:  :cry:

Reply

Marsh Posté le 18-04-2003 à 22:49:09    

Spi X iT a écrit :

bah les mots et le nombre de lettres sont aléatoire alors je vois pas bien comment faire... jsuis désolé aide moi stp :sweat:  :cry:  


 
c'est un troll ou quoi cette question ?
 
Je fais pas de VB, et je programme pour mon plaisir, mais la solution est tellement simple que je me pose certaines questions...
 
Edit : date d'arrivée sur le forum : 18-04-2003  
 
BAN !


Message édité par Hermes le Messager le 18-04-2003 à 22:51:18
Reply

Marsh Posté le 18-04-2003 à 22:53:57    

Spi X iT a écrit :

bah les mots et le nombre de lettres sont aléatoire alors je vois pas bien comment faire... jsuis désolé aide moi stp :sweat:  :cry:  


 
pose-toi la question:
 
quel test me permetterai de savoir si le mot saisi est un mot dont les lettres sont dans le désordre ?
 
normalement j'ai essayé de mettre la réponse dans la question alors après :/

Reply

Marsh Posté le 18-04-2003 à 23:08:38    

Je suis venu ici parce que j'ai réfléchis longtemps mais je n'ai trouvé aucune réponse. Jsuis pas tres fort en vb j'ai commencé réellement le vb a fond il y a quelques jours et j'ai besoin d'aide alors si vous voulez pas bah jcomprends pas trop le but de votre forum :(

Reply

Marsh Posté le 18-04-2003 à 23:10:01    

ça n'a rien à voir avec VB, c'est de l'algo, ça serait pareil en C ou en ASM

Reply

Marsh Posté le 18-04-2003 à 23:10:33    

C'est pas qu'on veut pas, mais franchement c'est quand même très très simple.  
 
Aller, un indice :
 
les codes ASCII des caractères... + une addition... suivi d'une vérif (ya vraiment peu de chance mais bon...) par rapport à une liste de mots donnés...
 
C'est bon comme ça ?
 :heink:

Reply

Marsh Posté le 18-04-2003 à 23:15:07    

franchement j'ai aucune idée, j'avais fait des test pour vérifier si dans ma list de mot les caractere du mot mélangé se trouvait dans un mot de la list mais j'ai pas trouvé . J'aimerais just savoir comment reconstituer le mot , soit savoir le reconstituer avec une list de mots ou il se trouve

Reply

Marsh Posté le 18-04-2003 à 23:15:21    

alors un peu plus d'aide:
 
"quel test me permetterai de savoir si le mot saisi est un mot connu dont les lettres sont présentes mais dans le désordre ?"

Reply

Marsh Posté le 18-04-2003 à 23:15:21   

Reply

Marsh Posté le 18-04-2003 à 23:16:32    

il ne faut pas chercher à reconstituer le mot, ça donnerai trop de possiblitées à vérifier.

Reply

Marsh Posté le 18-04-2003 à 23:19:30    

BJOne a écrit :

il ne faut pas chercher à reconstituer le mot, ça donnerai trop de possiblitées à vérifier.


 
Non mais ça suffit là  :fou:  
 
Je lui ai donné la solution, si en plus, il sait pas lire, je vois pas ce qu'on peut faire de plus.
 
ADDITIONNER LES CODES ASCII DES CARACTERES DU MOT ET COMPARER LE RESULTAT A UNE ADDITION DES CODES ASCII D'UNE LISTE DE MOT, c'est TROP DUR ??????

Reply

Marsh Posté le 18-04-2003 à 23:22:16    

Hermes le Messager > mmm... c moyen ton truc, on risque de pas faire la différence entre certains mots si je comprends ce que tu veux faire...
 
genre entre :
 
bac
baba
 
(si on compte que "baba" est un mot :D)
 
Mais c dur de trouver un exemple :D


Message édité par MagicBuzz le 18-04-2003 à 23:22:40
Reply

Marsh Posté le 18-04-2003 à 23:24:01    

Hermes le Messager a écrit :


 
Non mais ça suffit là  :fou:  
 
Je lui ai donné la solution, si en plus, il sait pas lire, je vois pas ce qu'on peut faire de plus.
 
ADDITIONNER LES CODES ASCII DES CARACTERES DU MOT ET COMPARER LE RESULTAT A UNE ADDITION DES CODES ASCII D'UNE LISTE DE MOT, c'est TROP DUR ??????


 
foutaise  [:tinostar]  
 
ton test c'est de la merde en boite [:boidleau]  
 
il faut plutot trier les lettres de l'anagramme et de tous les mots dans l'ordre lexicographique, et de vérifier ensuite quels sont ceux qui correspondent.


Message édité par schnapsmann le 18-04-2003 à 23:25:03

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 18-04-2003 à 23:24:08    

PS: mon contre exemple est mauvais, car je ne compte pas l'offset des aractères dans la table ascii, mais le problème peut réellement se présenter

Reply

Marsh Posté le 18-04-2003 à 23:24:09    

vi il veux faire un checksum mé bon :D
 
un mot dont les codes ASCII seront 25 30 29 passera pour un 25 15 29 15 par exemple ;)

Reply

Marsh Posté le 18-04-2003 à 23:25:01    

SchnapsMann a écrit :


 
foutaise  [:tinostar]  
 
ton test c'est de la merde en boite [:boidleau]  
 
il faut plutot trier les lettres des mots de l'anagramme et de tous les mots dans l'ordre lexicographique, et de vérifier ensuite s'il quels sont ceux qui correspondent dans le dico .


C'est aussi ce à quoi je pensais.
J'avais fait un programme qui permettait de remplir automatiquement une grille de mots flèchés comme ça :D

Reply

Marsh Posté le 18-04-2003 à 23:25:13    

bah je ferais : If InStr(list1, LesLettresMélangésDuMot) Then on selectionne le mot nan ? :??:

Reply

Marsh Posté le 18-04-2003 à 23:26:19    

MagicBuzz a écrit :

Hermes le Messager > mmm... c moyen ton truc, on risque de pas faire la différence entre certains mots si je comprends ce que tu veux faire...
 
genre entre :
 
bac
baba
 
(si on compte que "baba" est un mot :D)
 
Mais c dur de trouver un exemple :D


 
Non, c'est pas moyen. Il faut si jamais le total des code ASCII du mot est égal au total des caractères ASCII d'un des mots de la liste, vérifier que les mêmes lettres sont bien présentes. Mais on gagne quand même un temps précieux je trouve, car on s'intéresse UNIQUEMENT aux mots qui ont une probabilité maximum de correspondre.
 :D

Reply

Marsh Posté le 18-04-2003 à 23:26:45    

Spi X iT a écrit :

bah je ferais : If InStr(list1, LesLettresMélangésDuMot) Then on selectionne le mot nan ? :??:  


 
nan toi il va falloir qu'on te détaille plus apparement vu ton skill [:fear], mais pas moi parce que  :sleep:


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 18-04-2003 à 23:27:06    

mouais :D

Reply

Marsh Posté le 18-04-2003 à 23:27:58    

mais mon truc marchera pa vu que mon mot mélangé existe pas dans ma list jsui bete  :ouch:

Reply

Marsh Posté le 18-04-2003 à 23:28:37    

Hermes le Messager a écrit :


 
Non, c'est pas moyen. Il faut si jamais le total des code ASCII du mot est égal au total des caractères ASCII d'un des mots de la liste, vérifier que les mêmes lettres sont bien présentes. Mais on gagne quand même un temps précieux je trouve, car on s'intéresse UNIQUEMENT aux mots qui ont une probabilité maximum de correspondre.
 :D  


 
à ce moment là d'accord.
 
donc le dico tu associes un checksum à chaque mot :D

Reply

Marsh Posté le 18-04-2003 à 23:28:47    

SchnapsMann a écrit :


 
foutaise  [:tinostar]  
 
ton test c'est de la merde en boite [:boidleau]  
 
il faut plutot trier les lettres de l'anagramme et de tous les mots dans l'ordre lexicographique, et de vérifier ensuite quels sont ceux qui correspondent.


 
tss tss... Relis ma dernière réponse. SI tu as un dictionnaire de plusieurs milliers, voir millions de mots, ma solution est bcp bcp plus rapide et optimisée...  :whistle:
 
Je vous signale quand même que les probas de tomber sur des mots différents sont faibles...  :ange:


Message édité par Hermes le Messager le 18-04-2003 à 23:30:34
Reply

Marsh Posté le 18-04-2003 à 23:29:51    

Spi X iT a écrit :

bah je ferais : If InStr(list1, LesLettresMélangésDuMot) Then on selectionne le mot nan ? :??:  


Chais pas où tu as vu que InStr faisait ça :heink:
 
Définition de la fonction InStr en VBS :
 
http://www.manga-torii.com/files/instr.htm
 
(article de la documentation MSDN Library Avril 2001)

Reply

Marsh Posté le 18-04-2003 à 23:30:48    

youhou  :hello:  jveux pa m'imisser dans vos débat de programmeur vu mon niveau mais j'aimerais quelque chose qui marche tres rapidement si possible. jsuis nul je sais en vb mé bon on commence tous comme ca  :jap:

Reply

Marsh Posté le 18-04-2003 à 23:32:30    

Hermes le Messager a écrit :


 
tss tss... Relis ma dernière réponse. SI tu as un dictionnaire de plusieurs milliers, voir millions de mots, ma solution est bcp bcp plus rapide et optimisée...  :whistle:  


 
et elle marche pas justement sur un vrai dico:
ex "ad" et "bc" on clairement la même "somme des asciis", pas besoin d'aller sur un vrai dico.
 
NB: en anglais ad et bc sont des vrais mots du dictionnaire  [:power600]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 18-04-2003 à 23:32:53    

Spi X iT a écrit :

youhou  :hello:  jveux pa m'imisser dans vos débat de programmeur vu mon niveau mais j'aimerais quelque chose qui marche tres rapidement si possible. jsuis nul je sais en vb mé bon on commence tous comme ca  :jap:  


 
Pour le programme, désolé, mais c'est toi qui devras le faire. Ici, on débat, on aide, on conseille, mais on donne rien de terminé. Faudra t'y faire mon vieux c'est comme ça...  [:totozzz]

Reply

Marsh Posté le 18-04-2003 à 23:33:01    

Hermes le Messager a écrit :


 
tss tss... Relis ma dernière réponse. SI tu as un dictionnaire de plusieurs milliers, voir millions de mots, ma solution est bcp bcp plus rapide et optimisée...  :whistle:
 
Je vous signale quand même que les probas de tomber sur des mots différents sont faibles...  :ange:  


Bah moi le dico le lui met une deuxième colonne avec les lettres triées, c'est plus simple :D
 
Et si tu fait ça intelligement, tu peux même faire autant de fichiers que de première lettre possible dans la liste des lettres triées :)


Message édité par MagicBuzz le 18-04-2003 à 23:33:25
Reply

Marsh Posté le 18-04-2003 à 23:34:16    

spa une question de VB.
 
mais bon en gros il faudra que tu extraies chaque lettre du mot saisi.

Reply

Marsh Posté le 18-04-2003 à 23:34:35    

SchnapsMann a écrit :


 
et elle marche pas justement sur un vrai dico:
ex "ad" et "bc" on clairement la même "somme des asciis", pas besoin d'aller sur un vrai dico.
 
NB: en anglais ad et bc sont des vrais mots du dictionnaire  [:power600]  


 
T'as pas lu mon dernier message :
 
SI la sommes ASCII du mot dans le désordre est égale à la somme d'un des mots du dico alors on teste pour voir si on a les même lettres, MAIS UNIQUEMENT dans ce cas.
 
Imagines ta soluce rapportée à des millions de mots, et la mienne...  :whistle:

Reply

Marsh Posté le 18-04-2003 à 23:35:26    

MagicBuzz a écrit :


Bah moi le dico le lui met une deuxième colonne avec les lettres triées, c'est plus simple :D
 
Et si tu fait ça intelligement, tu peux même faire autant de fichiers que de première lettre possible dans la liste des lettres triées :)


 
Oui, mais c'est pas du jeu ça...  :non:

Reply

Marsh Posté le 18-04-2003 à 23:35:37    

Hermes le Messager a écrit :


 
T'as pas lu mon dernier message :
 
SI la sommes ASCII du mot dans le désordre est égale à la somme d'un des mots du dico alors on teste pour voir si on a les même lettres, MAIS UNIQUEMENT dans ce cas.
 
Imagines ta soluce rapportée à des millions de mots, et la mienne...  :whistle:  


Moi c plus simple, nananère :p (y'a juste que le dico est deux fois plus gros :D)

Reply

Marsh Posté le 18-04-2003 à 23:35:50    

j'ai pas dit ke je voulait que vous me fassiez le programe.. j'aimerais just qu'on me donne une technique clair et pas trop difficile svp :sarcastic:

Reply

Marsh Posté le 18-04-2003 à 23:39:39    

hé ben...
 
c'est pas compliqué...
 
Mot : nagOre
 
Liste de mots :
 
Pomme
Orange
Prune
 
mot recherché :
 
aegnOr
 
dictionnaire reconstitué :
 
emmoP
aegnOr
enPru
 
Avec ça, tu retrouve immédiatement que c'est la seconde ligne, donc le mot "Orange".
 
Ca marchera évidement pas avec des mots comme :
 
"cas" et "sac", mais à ce moment, la résolution est de toute façon impossible.
 
Essaie de faire un effort quand même... Je n'ai fait que traduire ce qu'on a dit, mot pour mot.
 
Hermes le Messager préconnise que tu additionnes les codes ascii de chaque lettre des mots du dictionnaire pour faire un test préliminaire, afin de gagner en rapidité.


Message édité par MagicBuzz le 18-04-2003 à 23:41:14
Reply

Marsh Posté le 18-04-2003 à 23:41:01    

Hermes le Messager a écrit :


 
T'as pas lu mon dernier message :
 
SI la sommes ASCII du mot dans le désordre est égale à la somme d'un des mots du dico alors on teste pour voir si on a les même lettres, MAIS UNIQUEMENT dans ce cas.
 
Imagines ta soluce rapportée à des millions de mots, et la mienne...  :whistle:  


 
Pour un vrai moteur de recherche d'annagramme dans un gros dicco, ta soluce et aussi très mauvaise au niveau de la complexité...  
 
Mais bon initialement ce n'était pas le sujet il me semble :sarcastic:


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 18-04-2003 à 23:44:27    

bah de toutes façon à priori, pour la vitesse le parcours de table est une horreur, la dichotomie est une meilleure approche.

Reply

Marsh Posté le 18-04-2003 à 23:44:54    

enfin revenons en à nos moutons :D

Reply

Marsh Posté le 18-04-2003 à 23:45:41    

oui magic buzz mais comment crée cette liste du dictionaire reconstitué ??? :??:

Reply

Marsh Posté le 18-04-2003 à 23:45:53    

BJOne a écrit :

enfin revenons en à nos moutons :D


 
qui lui claque le code en visual basic qu'on en finisse?  :whistle:  


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed