IMPLÉMENTATION DAWG

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 25 juil. 2010 à 21:50
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 26 juil. 2010 à 17:29
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52084-implementation-dawg

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juil. 2010 à 17:29
Certes si on demande les mots "formables" (pas vu dans le Larousse) partant de 'ABCD' on va parcourir au complet de la table 4 jusque 15.
Ze1wina Messages postés 2 Date d'inscription dimanche 25 juillet 2010 Statut Membre Dernière intervention 26 juillet 2010
26 juil. 2010 à 11:34
Donc quand tu veux par exemple les mots de 10 lettres finissant par 'S' je suppose que tu comptes d'abord le nombres de caractères à sauter, puis le nombre de caractères à lire. Tu lis les mots situés entre tes deux bornes un à un et tu regardes si y'a un 'S' final.
Économique en mémoire certes, et certainement aussi voir plus rapide pour la recherche d'anagramme avec inconnu( et encore je vais essayer d'implémenter la même fonctionnalité pour tester), mais l'est ce vraiment quand il s'agit de trouver tous les mots "formables" (pas de fautes me dit mon correcteur, ce mot existe ? Oo) avec les lettres d'un autres : avec cette méthode, pas d'autres choix que de lire tous les mots de l'ods :s
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juil. 2010 à 10:16
Les mots de 2 lettres tous à la suite, ensuite ceux de 3 etc jusque 15.
Plus aucun espace ni saut de ligne, tous les octets à la suite.
En début de fichier, 15 DWORDs (direct en binaire) indiquant combien de mots dans chaque table de 2 à 15.
Ze1wina Messages postés 2 Date d'inscription dimanche 25 juillet 2010 Statut Membre Dernière intervention 26 juillet 2010
26 juil. 2010 à 03:46
Le but principale était de faire créer puis de faire mumuse avec un dawg en fait. Je n'ai pas encore testé scrbbl mais dès qu'un windows me tombe sous la main je le fais ! (wine il aime pas quand c'est du 64bits U__U)

Par contre : "En structurant les mots du ods5.txt sous forme de tables dans un fichier binaire" peux tu m'expliquer un peu plus ta méthode ?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 juil. 2010 à 21:50
Si c'est pour une démo des listes, ok.

Sinon il est totalement inutile de charger tous les mots sous forme de liste.
En structurant les mots du ods5.txt sous forme de tables dans un fichier binaire, on a un accès ultra rapide et on encombre nettement moins la mémoire.

Si tu as un PC sous Win64 pour tester, essaie ceci:
http://www.brunews.com/upload_code/scrbbl.zip
ods.dat dans le zip a été fait par un prog sur la base du ods5, il n'est que de 3.61 Mo au lieu des 4.33 originaux du txt.
Ainsi fait, ods.dat se charge en 1 seul READ(), il n'y a )plus de lignes ni autres lenteurs.
Exe (9 Ko) du zip fait les anagrammes et liste les mots de longueur voulue avec les lettres qu'on précise, résultat instantané: exemple 10 lettres an spécifiant 'S' final seulement result 25700 mots illico affichés.
Rejoignez-nous