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

C Discussion :

Somme cumulée décroissante


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2018
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2018
    Messages : 180
    Par défaut Somme cumulée décroissante
    Bonjour à tous,

    J'aurais besoin de votre aide pour créer une fonction qui me calcule la somme cumulé décroissante, car je galère vraiment ^^

    Voici un exemple de ce que j'aimerais faire :

    Nom : 2018-12-08_203812.jpg
Affichages : 757
Taille : 75,5 Ko

    Merci à vous

  2. #2
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Et rien d'autre avec ? pas croissant et café avec ?

    Bref ça serait cool que tu nous donne la formule mathématique pour avoir ces résultats , l'autre point qu'est qui te bloque ? (et j'ai pas forcément bien compris ton tableau à vrai dire)
    Faire des additions en C ? il faut utiliser opérateur +
    Faire des soustractions en C ? il faut utiliser opérateur -
    Faire des multiplications en C ? il faut utiliser opérateur *
    Faire des divisions en C ? il faut utiliser opérateur /
    Donc avec tout ça fait un code , après on pourra t'aider !

  3. #3
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 776
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    la formule mathématique pour avoir ces résultats
    Apparemment
    1) Somme croissante (SumAO) de P(0) à P(n), SumAO = [P(0) + ... + P(n)] - écriture suite : SumAO(0) = P(0), SumAO(n) = [SumAO(n - 1) + P(n)]
    2) Somme décroissante (SumDO) de P(0) à P(n) et last la dernière unité, SumDO = SumAO(last) si n=0 sinon SumDO = SumAO(last) - [(P(0) + ... + P(n - 1))] - écriture suite : SumDO(0) = SumAO(last), SumDO(n) = [SumDO(n - 1) - [P(n - 1)]

    SumAO -> "Sum in ascending order"
    SumDO -> "Sum in descending order"

    Ensuite, reste la question comment gérer la somme décroissante lorsqu'elle arrive à zéro ?


    Édit : Mise à jour suite à la remarque de @Pyramidev

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 851
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par preliator Voir le message
    car je galère vraiment ^^
    Par opposition à ceux qui viennent là sans galérer vraiment tu veux dire ?

    Citation Envoyé par Kannagi Voir le message
    (et j'ai pas forcément bien compris ton tableau à vrai dire)
    Pour le cumulé croissant chaque ligne est l'addition du nombre situé au dessus plus le nombre "P" de la ligne en cours.
    Pour le cumulé décroissant chaque ligne est la soustraction du nombre situé au dessus et du nombre "P" de la ligne précédente (ce qui montre déjà un déséquilibre)

    Citation Envoyé par foetus Voir le message
    1) Somme croissante de P(0) à P(n), somme = [P(0) + ... + P(n)] - écriture suite : somme(0) = P(0), somme(n) = [somme(n - 1) + P(n)]
    2) Somme décroissante de P(0) à P(n), somme = 1 si n=0 sinon somme = 1 - [(P(0) + ... + P(n - 1))] - écriture suite : somme(0) = 1, somme(n) = [somme(n - 1) - [P(n - 1)]
    A tes souhaits

    Citation Envoyé par foetus Voir le message
    Apparemment
    C'est tellement évident
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 515
    Par défaut
    Citation Envoyé par preliator Voir le message
    J'aurais besoin de votre aide pour créer une fonction qui me calcule la somme cumulé décroissante, car je galère vraiment ^^
    Montre le code que tu as écrit pour le cumulé croissant et dis-nous ce qui te bloque pour écrire celui du cumulé décroissant.

    Citation Envoyé par foetus Voir le message
    2) Somme décroissante de P(0) à P(n), somme = 1 si n=0 sinon somme = 1 - [(P(0) + ... + P(n - 1))] - écriture suite : somme(0) = 1, somme(n) = [somme(n - 1) - [P(n - 1)]
    « somme = 1 si n=0 » n'est valable que dans le cas particulier où la somme de tous les éléments est 1.

    Je dirais plutôt : pour tout k entre 0 et N-1 (N étant le nombre d'éléments), on a :
    CumuleDecroissant(k) = P(k) + P(k+1) + ... + P(N-1)

    Donc : CumuleDecroissant(0) = P(0) + P(1) + ... + P(N-1)

    Cela dit, pour k entre 1 et N-1, on a effectivement :
    CumuleDecroissant(k) = CumuleDecroissant(k-1) - P(k-1)

  6. #6
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 776
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    A tes souhaits ... C'est tellement évident
    C'est vrai que ce n'est pas très joli ... mais on n'a pas une saisie LaTeX avec les symboles mathématiques qui vont bien
    Et des fois on peut passer devant des choses tellement évidentes (des fautes d'orthographe, on cherche un objet, ...), que rien n'est vraiment évident pour tout le monde.


    Citation Envoyé par Pyramidev Voir le message
    CumuleDecroissant(0) = P(0) + P(1) + ... + P(N-1) + P(N)
    Effectivement, si la somme est décroissante, on part de la somme croissante pour retirer 1 à 1 les éléments.
    Et donc comme la dernière valeur de cette somme décroissante est toujours 0, il y a une espèce de translation des valeurs pour l'éviter.
    J'ai mis à jour mon message

  7. #7
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 515
    Par défaut
    Citation Envoyé par Pyramidev Voir le message
    CumuleDecroissant(0) = P(0) + P(1) + ... + P(N-1)
    Citation Envoyé par foetus Voir le message
    CumuleDecroissant(0) = P(0) + P(1) + ... + P(N-1) + P(N)
    Dans mon message, j'avais défini N comme le nombre d'éléments. Or, le premier indice est 0, donc le dernier indice est bien N-1. Dans l'exemple du message de preliator, mon N serait égal à 6.

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