A voir également:
- Algo sur nombre de lettres et mots...
- Identifiant et mot de passe - Guide
- Comment trouver le mot de passe wifi sur son téléphone - Guide
- Mettre un mot de passe sur un dossier - Guide
- Nombre facile - Télécharger - Outils professionnels
- Trousseau mot de passe iphone - Guide
5 réponses
Marden
Messages postés
1072
Date d'inscription
dimanche 11 février 2001
Statut
Membre
Dernière intervention
29 janvier 2006
210
16 oct. 2003 à 17:33
16 oct. 2003 à 17:33
Bonjour,
Il me semble qu'un "compteur" en base "26" peut répondre à ta question. La valeur initiale est {0}{0}...{0} (=0), la valeur finale serait {25}{25}...{25} (= 26^n - 1), selon le nombre "n" de digits passé en argument.
Dans la boucle d'incrément 1 entre ces valeurs, il faut effectuer des divisions entières successives par 26, et composer la solution (de la droite vers la gauche) en utilisant le reste de chaque division pour adresser le caractère à prendre à chaque fois dans l'alphabet.
Il me semble qu'un "compteur" en base "26" peut répondre à ta question. La valeur initiale est {0}{0}...{0} (=0), la valeur finale serait {25}{25}...{25} (= 26^n - 1), selon le nombre "n" de digits passé en argument.
Dans la boucle d'incrément 1 entre ces valeurs, il faut effectuer des divisions entières successives par 26, et composer la solution (de la droite vers la gauche) en utilisant le reste de chaque division pour adresser le caractère à prendre à chaque fois dans l'alphabet.
Salut, merci de m'avoir donner un tuyau mais je ne comprend pas trop ce que tu veux dire par division base 26. En fait je vais completer et eclaicir un peu mon pb :
j'aimerai trouver un algo qui en fonction du nombre de lettres entré en parametre me sorte la proba du plus petit nombre de mots en longueur fixe avec ce nb de lettres et ayant le meme score. (chaque mot a un score car chaque lettre a un score defini auparavant).
EX : ce que que me donne l'ordi à l'ecran si je tape en parametre "2" :
nblettre : 2 ; nb Mot : 21 ; score : 8 ; proba : 0.0311 ; exemple : BY
Tu vois un algo possible ? Merci d'avance, (si tu ne vois pas, je comprendrais car c'est balaise)
j'aimerai trouver un algo qui en fonction du nombre de lettres entré en parametre me sorte la proba du plus petit nombre de mots en longueur fixe avec ce nb de lettres et ayant le meme score. (chaque mot a un score car chaque lettre a un score defini auparavant).
EX : ce que que me donne l'ordi à l'ecran si je tape en parametre "2" :
nblettre : 2 ; nb Mot : 21 ; score : 8 ; proba : 0.0311 ; exemple : BY
Tu vois un algo possible ? Merci d'avance, (si tu ne vois pas, je comprendrais car c'est balaise)
Marden
Messages postés
1072
Date d'inscription
dimanche 11 février 2001
Statut
Membre
Dernière intervention
29 janvier 2006
210
16 oct. 2003 à 20:09
16 oct. 2003 à 20:09
Il y a effectivement erreur sur ma compréhension du problème (mon algo ne permet de générer simplement des combinaisons, selon un nombre passé en argument : ex : n=3 permet de générer les combinaisons de "AAA" à "ZZZ".
Dans ton cas, je pense que tu veux plutôt un algorithme de type "scrabble", où l'un des arguments de la fonction est le tirage des lettres (dans le "scrabble", il y a en plus les emplacements disponibles, et les lettres déjà placées, et les règles de multiplication). Cet algorithme passe obligatoirement par un "dictionnaire" exhaustif.
J'ai croisé un jour l'auteur d'un site avec jeu en ligne, qui m'a dit que son dictionnaire, sans doute en Java, occupait moins de 500ko. Je suppose qu'il s'agit d'une sorte d'arbre dont les clés sont d'abord à une lettre (sous-arbre dont les mots commencent par ...), etc. Les feuilles sont les mots du dictionnaire, mais on peut supposer que les féminins, les pluriels, les conjugaisons sont gérés par des pointeurs vers quelques rèles de génération des terminaisons. Je sais que le jeu proposé n'applique aucune stratégie, se contentant de proposer la solution rapportant le maximum de points. Mon meilleur score (je ne suis pas un spécialiste) est de -40 par rapport à celui de la "machine" !!!
Dans ton cas, je pense que tu veux plutôt un algorithme de type "scrabble", où l'un des arguments de la fonction est le tirage des lettres (dans le "scrabble", il y a en plus les emplacements disponibles, et les lettres déjà placées, et les règles de multiplication). Cet algorithme passe obligatoirement par un "dictionnaire" exhaustif.
J'ai croisé un jour l'auteur d'un site avec jeu en ligne, qui m'a dit que son dictionnaire, sans doute en Java, occupait moins de 500ko. Je suppose qu'il s'agit d'une sorte d'arbre dont les clés sont d'abord à une lettre (sous-arbre dont les mots commencent par ...), etc. Les feuilles sont les mots du dictionnaire, mais on peut supposer que les féminins, les pluriels, les conjugaisons sont gérés par des pointeurs vers quelques rèles de génération des terminaisons. Je sais que le jeu proposé n'applique aucune stratégie, se contentant de proposer la solution rapportant le maximum de points. Mon meilleur score (je ne suis pas un spécialiste) est de -40 par rapport à celui de la "machine" !!!
Salut phoenix,
désoler je vien juste de lire votre PB,
besoin daide?
il vous faut un tableau A qui va contenir l'ensemble des mots(comme dictionnaire)
nblettre : entier ; nb Mot : entier ; score : entier ; proba : real ; exemple :chaîne de caractères.
et une fonction factoriel pour calculer proba car je crois que vous aurez besoin du factoriel .
fonction fact( x:integer):integer;
.....
end; "fonction"
begin
"après leremplissage du tableau de dim nbMot "
read(nblettre);
score:=0;
For i:=1 to nbMot do
begin
if length(A[i])=nblettre then
score:=score+1;
end;
proba :="je ne me rappel pas bien comment la calc"
end.
bonne chance.
merci
bonne chance.
Merci.
désoler je vien juste de lire votre PB,
besoin daide?
il vous faut un tableau A qui va contenir l'ensemble des mots(comme dictionnaire)
nblettre : entier ; nb Mot : entier ; score : entier ; proba : real ; exemple :chaîne de caractères.
et une fonction factoriel pour calculer proba car je crois que vous aurez besoin du factoriel .
fonction fact( x:integer):integer;
.....
end; "fonction"
begin
"après leremplissage du tableau de dim nbMot "
read(nblettre);
score:=0;
For i:=1 to nbMot do
begin
if length(A[i])=nblettre then
score:=score+1;
end;
proba :="je ne me rappel pas bien comment la calc"
end.
bonne chance.
merci
bonne chance.
Merci.
bonjour,je voudrai s'il vous plait recevoir l'algo sur le jeu scrabble
en langage c ou pascal si possible
merci de votre bonne comprehension
en langage c ou pascal si possible
merci de votre bonne comprehension
bonjour
compte tenu des resultats satisfaisants qu'offre votre forum je me suis tenu de vous faire cette requete ;en effet je suis en deuxueme annee ,cycle analyste programmeur au Niger je voudrai que vous me fournissiez le programme en C ou en Pascal du scrabble
merci d'avance
compte tenu des resultats satisfaisants qu'offre votre forum je me suis tenu de vous faire cette requete ;en effet je suis en deuxueme annee ,cycle analyste programmeur au Niger je voudrai que vous me fournissiez le programme en C ou en Pascal du scrabble
merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
random
Messages postés
1612
Date d'inscription
vendredi 26 novembre 2004
Statut
Membre
Dernière intervention
30 mars 2006
155
13 janv. 2005 à 14:44
13 janv. 2005 à 14:44
marden a raison il faut un dictionnaire
ensuite il faut ajouter à ce dictionnaire une clef
par exemple chien aura pour clef
1c1e1h1i1n ou un systéme de notation identique
ensuite on calcule la clef du tirage selon le même système
si le tirage donnre en clef 4l3z
on textera 4l3z
puis 3l3z
jusqu'a 1l1z
pour le premier mot il suffit de valoriser toutes les clefs si le premier emplacement est fixé pour les mots trouvés
ainsi si le tirage est niche on va trouver dans le dictionnaire niche chien et tous les autres combinaisons et on va valoriser le mot placé en fonction de l'emplacement en gardant le plus gros tirage
pour les mots suivants il faut tester tous les emplacements disponibles et ajouter les lettres qui serviront de connexion à la clef
on recherche ensuite les valorisations et on garde le maximum
c'est un très joli problème
ensuite il faut ajouter à ce dictionnaire une clef
par exemple chien aura pour clef
1c1e1h1i1n ou un systéme de notation identique
ensuite on calcule la clef du tirage selon le même système
si le tirage donnre en clef 4l3z
on textera 4l3z
puis 3l3z
jusqu'a 1l1z
pour le premier mot il suffit de valoriser toutes les clefs si le premier emplacement est fixé pour les mots trouvés
ainsi si le tirage est niche on va trouver dans le dictionnaire niche chien et tous les autres combinaisons et on va valoriser le mot placé en fonction de l'emplacement en gardant le plus gros tirage
pour les mots suivants il faut tester tous les emplacements disponibles et ajouter les lettres qui serviront de connexion à la clef
on recherche ensuite les valorisations et on garde le maximum
c'est un très joli problème