IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Caml Discussion :

Caml win/ opérations sur des séquences d'entiers


Sujet :

Caml

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 1
    Points
    1
    Par défaut Caml win/ opérations sur des séquences d'entiers
    Bonjour.
    Les programmes que je veux faire sont la multiplication et la division entière appliquées à des entiers infinis qui sont représentés par des séquences d'entiers à 4chiffres.
    Il faut que en applicant mes programmes sur ces séquences d'entiers je retrouve le même résultat que quand je fais l'opération avec les entiers infinis à la main ou à la calculette....
    C'est la prise de tête depuis une semaine.... quelqu'un peut-il m'aider ?

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    caml win n'existe pas...

    OCaml ou CamlLight ?

    ensuite, montres-nous le type qui définit tes entiers infinis, et les fonctions que tu as commencées, et expliques-nous où ça coince

    à partir de là, on pourra t'aider

    au passage connais-tu le module Num d'OCaml ?
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 1
    Points
    1
    Par défaut
    oui, c'est Caml Light 0.74

    type int_inf == int list ;;
    par exemple l'entier infini 1234567890 sera traité par le programme sous cette forme: [12;3456;7890] et 213000476530067 sous [213;4;7653;67].
    La division entière 1234567890/213000476530067 = 5 à la calculette.
    Le programme doit me trouver le même résultat en utlisant les séquences d'entiers. pour des séquences du type ([e],[f]) c'est simple c'est e/f... Mais quand y a plusieurs éléments je sais pas comment faire...
    idem pour la multiplication.
    (c'est clair comme ça ? )

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    je en comprends pas comment tu détermines la représentation des nombres...

    pas ailleurs, j'aurais plutot fait une liste contenant les chiffres du nombre à représenté... ensuite, il faut voir les entiers comme des polynomes (1234 = 1*10^4 + 2*10^3 + 3*10^1 + 4*10^0) et appliqué la multiplication de Hörner

    enfin je dis cela... mais tu fais comme tu le sens
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 1
    Points
    1
    Par défaut
    ben en fait (c'est des consignes pour un devoir) c'est nous qui donnons la séquence...
    quand on fait une aplication on écrit Mult([12;3456;7890],[213;4;7653;67]), y a pas de programme pour transformer l'entier en séquence...

    j'ai fait déjà l'addition par exemple...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    let rec (Add : int_inf * int_inf  -> int_inf ) = function
    ([],[]) -> []
    | ([],s) -> s
    | (s,[]) -> s
    | ([e],[f]) -> if (e+f)>=10000 
    		then [1;e+f-10000] 
    		else [e+f]
    | (s,[f]) -> if (dernier(s)+f)>=10000 
    			then ajd(ajd(debut(debut(s)),dernier(debut(s))+1),dernier(s)+f-10000) 
    			else ajd(debut(s),dernier(s)+f)
    | ([e],s) -> if (dernier(s)+e)>=10000 
    			then ajd(ajd(debut(debut(s)),dernier(debut(s))+1),dernier(s)+e-10000) 
    			else ajd(debut(s),dernier(s)+e)
    | (s1,s2) -> if (dernier(s1)+dernier(s2))>=10000 
    				then ajd(Add(ajd(debut(debut(s1)),(dernier(debut(s1))+1)),debut(s2)),(dernier(s1)+dernier(s2)-10000))
    				else ajd(Add(debut(s1),debut(s2)),(dernier(s1)+ dernier(s2)));;
    et ça donne:
    #Add([12;3456;7890],[213;4;7653;67]);;
    - : int_inf = [213; 17; 1109; 7957]
    #

  6. #6
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    je ne comprends pas la logique d'une telle représentation... je vais donc avoir du mal à t'aider
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

Discussions similaires

  1. Opération sur des entiers codés dans un tableau
    Par Nurza dans le forum Langage
    Réponses: 7
    Dernier message: 28/09/2012, 12h57
  2. Probleme de dépassement sur des calculs d'entiers
    Par Sébastien THEVOT dans le forum C
    Réponses: 21
    Dernier message: 06/09/2006, 10h02
  3. opération sur des champs déjà manipulés
    Par fred23195 dans le forum SQL Procédural
    Réponses: 10
    Dernier message: 23/08/2006, 16h16
  4. [Dates] Question pour opérations sur des heures
    Par Sangdrax1604 dans le forum Langage
    Réponses: 7
    Dernier message: 23/08/2006, 11h07
  5. Opération sur des heures dans Excel
    Par mirascheat dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2005, 10h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo