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

Algorithmes et structures de données Discussion :

Déterminer les éléments d'un addition


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 244
    Par défaut Déterminer les éléments d'un addition
    Bonjour,

    J'aimerais développer une petite application mathématique pour mes enfants.
    Ma fille commence à faire des additions et des soustractions simples (disons que le maximum de ce qu'elle additionne fera 20).
    Avec 2 nombres.

    J'ai essayer de cherche sur Google mais j'avoue ne pas savoir quels termes de recherche utiliser.
    Je me tourne donc vers vous

    Prenons le problème de la somme:
    J'aimerai pouvoir définir dans une variable le maximum que mon addition peut atteindre [max_som]
    Exemple => [max_som=20]
    Comment puis-je faire, ensuite, pour que l'application me trouve les deux nombres possibles à additionner?
    Exemple => [nb1 = 19] + [nb2 = 1]

    J'avais pensé tout d'abord à utiliser une fonction random (nombres alétaoires) et d'ensuite additionner les 2 nombres.
    Si la somme dépasse mon [max_som] alors, je recommence la recherche de 2 nombres.
    Si la somme est <= [max_som] alors l'application propose à l'utilisateur de faire l'addition de ces 2 nombres.

    Si je fais cela, il faut chaque fois tester si l'addition des nombres est inférieure ou égale à mon [max_som].
    Existe-t-il un moyen afin d'être plus efficace dans la recherche des 2 nombres à additionner? De limiter le nombre de recherches et de tests?

    J'espère avoir été assez clair dans la description du problème

    Merci pour votre aide

  2. #2
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Par défaut
    Pourquoi ne pas mémoriser l'ensemble des couples (i,j) tel que i+j<=max et i,j =>0.

    Ensuite tu pioches aléatoirement dans cet ensemble.




    Ou alors tu tires un i entre 0 et max et tu complètes avec un j entre 0 et max-i.

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Par défaut Déterminer les éléments d'un addition
    Bonjour,
    Tu peux faire comme te l'a indiqué CliffeCSTL :
    Avec Matlab :

    Code matlab : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    N=20;%Somme à trouver
    x=nchoosek(1:N,2);
    S=x(:,1)+x(:,2);
    [I,J]=find(S==20);
    Resultat=x(I,:)% Résultat de la somme de deux nombres
    Tirage=  Resultat(1 + fix(length(Resultat)*rand(1)),:)%Paire de nombres de somme N

    Sortie : Tirage =

    8 12

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 227
    Par défaut
    Dans ce bout de code, je remplacerais S==20 par S<=20, en espérant que la syntaxe reste correcte.

    Sinon, si toutes les additions donnent 20 comme résultat, le jeu va vite être lassant.

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Par défaut Déterminer les éléments d'une addition
    Bonsoir,
    Tu as raison tbv92, j'ai pris l'exemple de L0007 où N=20.
    On peut aussi tirer N au hasard.

  6. #6
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    Première idée: L'outil que tu cherches est "le reste de la division euclidienne", autrement appelé "modulo".

    Dans de nombreux langages, si / est la division entière, % est le modulo.
    Si la division entière est 'div', le modulo est 'mod'.

    Exemples:
    23%2 = 1
    46%20 = 6
    10 mod 13 = 10

    Le résultat est forcément entre 0 et ton diviseur. Donc tu peux utiliser somm inférieure à ton max_somm:
    a = random() % somm
    b = somm - a

    Deuxième idée: On tire, de la même façon le nombre somm.
    On utilise même un décalage pour que ce ne soit pas trop bas.

    somm= ( random() % (max_somm - 3) ) +3
    a = random() % somm
    b = somm - a

    Et voilà, tu donnes a et b à la petite.

    Facile à faire sur une colonne sous un tableur classique.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déterminer les éléments uniques d'un tableau
    Par maggie2008 dans le forum MATLAB
    Réponses: 4
    Dernier message: 10/02/2012, 14h06
  2. algorithme de tri tableau :afficher que les éléments unique
    Par sofiane61 dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 31/03/2005, 19h50
  3. Déterminer les coefficients moyens d'une équation linéaire
    Par Oliveuh dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 11/01/2005, 23h23
  4. Réponses: 15
    Dernier message: 21/06/2004, 16h52
  5. Réponses: 2
    Dernier message: 11/08/2003, 09h43

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