malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
10 oct. 2006 à 14:58
dobro
Messages postés3Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention17 décembre 2006
-
17 déc. 2006 à 19:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
dobro
Messages postés3Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention17 décembre 2006 17 déc. 2006 à 19:05
ha ! Ok !! Sorry :D
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 17 déc. 2006 à 18:38
Dobro -> C'est pas du tout le même Basic ... c'est légèrement différent. Sur les ti il n'y a pas du tout de Dim, de fonction Left, etc. D'ailleur il y a un tutorial qui vient de sortir là dessus sur le site du zéro.
Tu regarderas par toi-même que c'est pas du tout la même chose.
dobro
Messages postés3Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention17 décembre 2006 17 déc. 2006 à 00:54
"La façon la plus facile serait de la faire en Basic"
ben c'est ce que je lui est fait 4 message plus haut !!..
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 16 déc. 2006 à 23:08
La façon la plus facile serait de la faire en Basic un language implenté dans les ti qui est relativement simple. J'ai jamais fait beaucoup de programmation avec, mais tu peux facilement trouver de l'information la dessus sur le web.
Sinon si tu es très expérimenté dans la programmation il y a aussi l'option de le coder en ASM Z80 et de le transféré sur ta calculatrice ensuite.
cs_mac13
Messages postés2Date d'inscriptionvendredi 15 décembre 2006StatutMembreDernière intervention16 décembre 2006 16 déc. 2006 à 18:07
oui c'est ça !!
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 16 déc. 2006 à 16:43
Mac13 -> Tu parles des Ti83 et Ti83+ ?
cs_mac13
Messages postés2Date d'inscriptionvendredi 15 décembre 2006StatutMembreDernière intervention16 décembre 2006 15 déc. 2006 à 19:39
bonsoir a tous j'aurai voulu savoir s il serai possible d'adapter cet algorithme a une calculatrice?? merci bien ciao
dobro
Messages postés3Date d'inscriptionjeudi 11 novembre 2004StatutMembreDernière intervention17 décembre 2006 28 oct. 2006 à 15:36
tiens voila un code qui marche niquel
il est en basic standard (aucune specificité)
donc il doit etre transposable dans tout language informatique je pense...
voila :
Print("Entrez un mot et appuyez sur 'Return': ")
m$=Input()
n= Len(m$)
Dim mo$(n)
Dim p(n)
mo$(n)=m$
z=n
rt:
p(z)=1
dt:
mo$(z-1)=Right(mo$(z),z-1)
z=z-1
If z>1
Goto rt
EndIf
m$=""
For w=1 To n
m$=Left(mo$(w),1)+m$
Next w
Print(m$+" ")
gt:
mo$(z+1)=mo$(z)+Left(mo$(z+1),1)
z=z+1
p(z)=p(z)+1
If p(z)<=z
Goto dt
EndIf
If z<n
Goto gt
EndIf
Print("FINI !!!!")
k$=Input()
cs_mikabou
Messages postés2Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention18 octobre 2006 18 oct. 2006 à 15:49
Je vous remercie pour tous ces compléments d'information!!! :)
Je pense que pour traiter les doublons, je vais trier tous les mots dans un tableau, puis faire un dernier balayage pour éliminer tous les intrus :p
Je ne m'était pas interessé à ce problème...en php je me contente de faire de petites fonctions, préférant d'autres langage dès que le temps de calcul dépasse les 30 secondes standard :p
...et pour trouver les anagramme d'un mot de 9 lettre...je n'utiliserais pas non plus le php ;)
Encore merci à vous :)
++Mik
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 13 oct. 2006 à 00:06
En théorie j'ai seulement rajouter quelque chose pour enlever les doublons. Aussi j'ai brièvement vérifier et je me suis rendu compte que l'algorythme répète souvent les mêmes résultats. Essaie avec le mot "abcdefghi" et tu verras que les permutation finnissent par se répèter, même s'il ne devrait pas. Les 72 permutations trouvés sont celle que son algorythme a permis de trouver et non un défault de mon code.
opossum_farceur
Messages postés147Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention14 novembre 2009 12 oct. 2006 à 18:22
ARTO_8000,
Et $nb, qu'est-ce que t'en fais?
Avec le mot 'abcdefghi', $nb (nombre de permutations de cet ensemble de 9 objets différents), est égal à 9!, soit 362880.
Ton script n'affichant que 72 permutations (censées être différentes, mais as-tu vraiment vérifié?), il ne reste plus qu'à trouver le moyen d'afficher les 362808 permutations restantes.
Autant dire qu'il y a du boulot.
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 12 oct. 2006 à 03:03
J'ai légèrement modifier le code pour qu'il puisse enlever les doublons. Pour l'instant avec cela je peux seulement calculer toutes les possibilités sans doublons d'un mot de 9 lettres. Quelqu'un a une idée pour optimiser davantage?
opossum_farceur
Messages postés147Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention14 novembre 2009 10 oct. 2006 à 16:01
Salut,
Ton code est correct seulement pour les mots de 3 caractères différents. Dès que l'on passe à 4 caractères, apparaissent les doublons, au détriment d'arrangements qui eux sont escamotés.
En bref, t'as encore du travail...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 10 oct. 2006 à 14:58
Hello,
rigolo :-)
Par contre, tu ne prends pas en compte les lettres apparaissant plusieurs fois dans le mot.
Essaye avec 'radar', tu verras que tu trouves bien trop d'anagrammes ;-)
17 déc. 2006 à 19:05
17 déc. 2006 à 18:38
http://www.siteduzero.com/tuto-3-1524-0-le-ti-basic.html
Tu regarderas par toi-même que c'est pas du tout la même chose.
17 déc. 2006 à 00:54
ben c'est ce que je lui est fait 4 message plus haut !!..
16 déc. 2006 à 23:08
Sinon si tu es très expérimenté dans la programmation il y a aussi l'option de le coder en ASM Z80 et de le transféré sur ta calculatrice ensuite.
http://jlpti83.free.fr/?rub=tibas
http://www.ftp83plus.net/Tutorials/TI83pAsmTut.htm
16 déc. 2006 à 18:07
16 déc. 2006 à 16:43
15 déc. 2006 à 19:39
28 oct. 2006 à 15:36
il est en basic standard (aucune specificité)
donc il doit etre transposable dans tout language informatique je pense...
voila :
Print("Entrez un mot et appuyez sur 'Return': ")
m$=Input()
n= Len(m$)
Dim mo$(n)
Dim p(n)
mo$(n)=m$
z=n
rt:
p(z)=1
dt:
mo$(z-1)=Right(mo$(z),z-1)
z=z-1
If z>1
Goto rt
EndIf
m$=""
For w=1 To n
m$=Left(mo$(w),1)+m$
Next w
Print(m$+" ")
gt:
mo$(z+1)=mo$(z)+Left(mo$(z+1),1)
z=z+1
p(z)=p(z)+1
If p(z)<=z
Goto dt
EndIf
If z<n
Goto gt
EndIf
Print("FINI !!!!")
k$=Input()
18 oct. 2006 à 15:49
Je pense que pour traiter les doublons, je vais trier tous les mots dans un tableau, puis faire un dernier balayage pour éliminer tous les intrus :p
Je ne m'était pas interessé à ce problème...en php je me contente de faire de petites fonctions, préférant d'autres langage dès que le temps de calcul dépasse les 30 secondes standard :p
...et pour trouver les anagramme d'un mot de 9 lettre...je n'utiliserais pas non plus le php ;)
Encore merci à vous :)
++Mik
13 oct. 2006 à 00:06
12 oct. 2006 à 18:22
Et $nb, qu'est-ce que t'en fais?
Avec le mot 'abcdefghi', $nb (nombre de permutations de cet ensemble de 9 objets différents), est égal à 9!, soit 362880.
Ton script n'affichant que 72 permutations (censées être différentes, mais as-tu vraiment vérifié?), il ne reste plus qu'à trouver le moyen d'afficher les 362808 permutations restantes.
Autant dire qu'il y a du boulot.
12 oct. 2006 à 03:03
<?php
$temps = time();
function permute($mot,$i,$j){
$tmp=$mot[$i];
$mot[$i]=$mot[$j];
$mot[$j]=$tmp;
return $mot;
}
function factoriel($n){
if($n == 0){ return 1; }
return $n*factoriel($n-1); // retourne le nombre courant $n multiplié par $n-1 *$n-1-1 etc..
}
$mot='abcdefghi';
echo 'Votre mot :'.$mot.'
';
$nb=factoriel(strlen($mot));
$mots_trouve = $mot;
$j=0;
$k=1;
for ($i=0;$i<$nb;$i++){
if ($k==strlen($mot))
$k=0;
if ($j==strlen($mot))
$j=0;
$mot=permute($mot,$j,$k);
if (strpos($mots_trouve,$mot) === false)
{
echo $mot.':'.$j.':'.$k.'
';
$mots_trouve .= '|'.$mot;
}
$j++;
$k++;
}
echo '
Nombre trouvé :'.count(explode('|',$mots_trouve)).'';
echo 'Temps: '.(time()-$temps).' secondes';
?>
10 oct. 2006 à 20:01
<?php
function permute($mot,$i,$j){
$tmp=$mot[$i];
$mot[$i]=$mot[$j];
$mot[$j]=$tmp;
return $mot;
}
function factoriel($n){
if($n == 0){ return 1; }
return $n*factoriel($n-1); // retourne le nombre courant $n multiplié par $n-1 *$n-1-1 etc..
}
$mot=($_POST['mot']);
//$mot=\"aze\";
echo $mot.\"
\";
$nb=factoriel(strlen($mot));
echo \"Facto :\".$nb.\"
\";
$j=0;
$k=1;
for ($i=0;$i<$nb;$i++){
if ($k==strlen($mot)){
$k=0;
}
if ($j==strlen($mot)){
$j=0;
}
$mot=permute($mot,$j,$k);
echo \"----
".$mot.", ".$j.", ".$k.", \";
$j++;
$k++;
}
?>
<form method="post" action="nom.php">
</form>
10 oct. 2006 à 16:01
Ton code est correct seulement pour les mots de 3 caractères différents. Dès que l'on passe à 4 caractères, apparaissent les doublons, au détriment d'arrangements qui eux sont escamotés.
En bref, t'as encore du travail...
10 oct. 2006 à 14:58
rigolo :-)
Par contre, tu ne prends pas en compte les lettres apparaissant plusieurs fois dans le mot.
Essaye avec 'radar', tu verras que tu trouves bien trop d'anagrammes ;-)