algorithme algobox suite de Cyracuse


  • K

    je dois effectuer un algoritme avec algobox pour une suite numerique dans la quelle je dois inclure deux conditions " si n est pair et si n est impair"

    comment s'ecrivent ces conditions ? merci


  • mtschoon

    BONJOUR ( un petit "bonjour" fait plaisir ! )

    Idées,

    Tu prends "Si...Alors" et tu coches Sinon


  • K

    excusez moi c'est la premiere fois que j'oublie de saluer !

    j'ai bien pris " si..alors" mais je crois qu'algobox le comprend pas les mots " pairs et impairs " comment les exprimer autrement ? merci


  • mtschoon

    Pour pair :

    Si tu as appelé n la variable nombre utilisée , tu peux utiliser "floor(n/2)" qui calcule le quotient entier de n par 2 .
    Si le quotient entier de n/2 vaut n/2 , alors n est pair , Sinon n est impair.

    Tu dois pouvoir utiliser :

    floor(n/2)==n/2 ( pour n pair ) Il faudra tester


  • mtschoon

    floor(n/2) représente le quotient entient de n/2.

    Pour comprendre , je te donne des exemples .

    un exemple de n pair : n=6 donc n/2=3 donc floor(n/2)=3
    un exemple de n impair : n=7 donc n/2=3.5 donc floor(n/2)=3

    floor(n/2)=n/2 est une traduction de n pair
    floor(n/2)≠n/2 est une traduction de n impair


  • K

    floor(n/2) représente le quotient entient de n/2.

    Pour comprendre , je te donne des exemples .

    fichier math merci voici mon essai qui est refusé par algobox ?


  • mtschoon

    tu as mis une parenthèse de trop !

    Indique l'énoncé précis de ton exercice , si autre chose te gène.


  • K

    je vous remercie voici l'enoncé
    Un est definiepar son 1er terme Uo et par le procede suivant

    -si n est pair, Un+1=1/2n
    -si n est impair, Un+1= 3n+1

    ecrire un algoritme demandant la valeur du 1er terme puis les 10 termes de Un


  • mtschoon

    Es-tu sûr de ton énoncé ? C'est peut-être cela , mais si , pour UnU_nUn pair , il y avait eu "un+1=un2u_{n+1}=\frac{u_n}{2}un+1=2un" et pour UnU_nUn impair "un+1=3un+1u_{n+1}=3u_n+1un+1=3un+1" , ce serait l'agorithme classique de Cyracuse ?


  • mtschoon

    Pour le cas où c'est bien l'algorithme que je t'ai indiqué :
    Premier terme U0U_0U0 appelé a et suite de Cyracuse , je t'indique un algorithme possible.
    Il fonctionne maisteste le ( je ne l'ai pas testé ) , et modifie le éventuellement si ce n'est pas la bonne suite.

    C'est seulement un exemple.

    fichier math[/img]


  • K

    merci bien encore une petite precision je ne trouve pas sur mon clavier comment faire la fleche horizontale qui est apres le "0" du 1er " afficher ?


  • mtschoon

    J'ai utilisé -> ( "moins" suivi de "supérieur" )

    Tu n'es pas obligé de faire ainsi ! Tu peux rédiger avec plus de détails.

    C'est pour la lisibilité des réponses :

    A l'affichage , chaque indice est écrit en correspondance avec la valeur du terme de la suite.


  • K

    je ne comprends pas pourquoi il y a 3 variables , ( a ? )


  • mtschoon

    a est la valeur du premier terme u0u_0u0 de la suite
    u est un terme de la suite ( qui prend les valeurs u1u_1u1,u2u_2u2,...,u10u_{10}u10 )
    i est le "compteur " de tours ( de 1 à 10)


  • K

    je vous remercie j' abandonne..... j'ai choisi "s "car j'aimais bien les math mais ces algoritmes me font perdre beaucoup de temps et je n'en vois pas l'interet .Ce n'est pas du raisonnement mais l'art de " couper les cheveux en 4

    merci de votre aide


  • mtschoon

    Ce serait bien que , au moins , tu comprennes les algorithmes faits ( en les testant toi même avec un papier et un crayon pour comprendre le fonctionnement ) et petit à petit , tu t'habitueras.

    L'algorithmique est un exercice de logique très particulier qui amène à la programmation en informatique .
    Dans les études de Maths en enseignement supérieur , il y a , entre autre , un peu de programmation . Alors , il ne faut pas les négliger en totalité .

    Bon courage !


  • K

    merci je fais un dernier essai............... mais que signifie "0->" qui ne figure pas dans les variables ? fichier math


  • mtschoon

    Je croyais te l'avoir déjà indiqué...

    AFFICHER "0 -> " ainsi que AFFICHER "->" n'est que du TEXTE pour que les résultats obtenus soient facilement compréhensibles . Cela ne sert pas au fonctionnement du programme .

    Tu peux supprimer ces deux lignes d'affichage pour voir ce que cela donne. Le programme marche aussi bien mais on comprend moins bien les résultats.

    Tu peux(toujours entre guillemets "...") faire afficher tout le texte que tu veux pour améliorer la présentation des résultats.


  • K

    mtschoon
    Je croyais te l'avoir déjà indiqué...

    AFFICHER "0 -> " ainsi que AFFICHER "->" n'est que du TEXTE pour que les résultats obtenus soient facilement compréhensibles . Cela ne sert pas au fonctionnement du programme .

    Tu peux supprimer ces deux lignes d'affichage pour voir ce que cela donne. Le programme marche aussi bien mais on comprend moins bien les résultats.

    Tu peux(toujours entre guillemets "...") faire afficher tout le texte que tu veux pour améliorer la présentation des résultats.

    je vous remercie j'ai lu sur internet que cet algo de syracuse se terminait toujours par 1 Celui que j'ai refait sur algobox avec a = 3 ne s'arrete plus !!fichier math


  • mtschoon

    L'algorithme que tu montres et qui s'arrête à la ligne 17 n'est pas terminé.

    Si ton algorithme est bien tapé , seules les 10 premières valeurs ( u1u_1u1...u10u_{10}u10 )sont calculées et affichées vu que i varie de 1 à 10

    Ce que tu as lu était peut-être confus...l'algorithme de syracuse ne se termine pas par 1 ...
    Si tu es curieux , je te propose un article ( mais on s'éloigne de ton exercice )

    http://fr.wikipedia.org/wiki/Conjecture_de_Syracuse


  • K

    bonjour merci de me preciser si, quand Uo= 15 cet algoritme dont on demande les 50 premiers tfichier mathemes est correct ?


  • mtschoon

    Je vais répondre OUI et NON !

    Ton programme fonction mais seulementpour le premier terme égal à 15.
    Dans ce cas , il faut supprimer la variable a et la ligneLire aqui ne servent à rien

    Si tu veux un programme général qui soit utilisable dans tous les cas , il fautlaisser la variable a , laisser la ligne lire a et mettre u prend la valeur a
    Ainsi , le programme attend que l'utilisateur donne la valeur du premier terme a ( 15 par exemple , ou toute autre valeur ) et s'exécute.


  • K

    Avec un camarade nous avons comparé nos resultats qui sont differents le sien se termine par une serie de " 4 2 1 4 2 1 4 2 1.................

    dans la condition des nombres pairs il l'ecrit u%2==0

    ou est la verité ? merci


  • mtschoon

    La condition u%2==0 pour "nombre pair" est bonne mathématiquement .

    Maintenant , il faut analyser ces algorithmes et de les tester pour voir ce que comprend Algobox.


  • mtschoon

    Je viens de tester l'algorithme "à la main" ( ce que je t'avais conseillé de faire )

    La réaction d'Algobox est bizarre avec floor ( cette commande fonctionne bien sur ma calculette ; Algobox ne donne pas de massage d'erreur mais comprend mal ! ).

    Avec u%2==0 ( qui veut dire que "le reste de la division de n par 2 est nul" ) , Algobox comprend parfaitement bien et ne se trompe pas.

    Tu prends donc cette condition pour n pair , sans toucher à tout le reste du programme


  • K

    je vous remercie j'ai enfin terminé! je ne suis pas convaincu que l'informatique me fera gagner du temps !!


  • mtschoon

    Gagner du temps ! vraiment pas ... c'est sûr !!
    Mais , c'est très satisfaisant quand ça fonctionne !

    Bon DM .


  • M

    Si je puis me permettre, kuznik, il ne s'agit pas d'informatique mais d'algorithmique.
    De nombreux problèmes ne sont résolus qu'en utilisant des algorithmes.
    Ainsi, le plus célèbre (et le plus utile) est l'algorithme donnant le PGCD de deux entiers : il n'y a pas de "formule" pour le calculer.


  • mtschoon

    Tout à fait Mathtous.

    kuznik pensait , je crois , à la programmation en informatique , qui est l'écriture de l'algorithme dans un langage informatique .


Se connecter pour répondre