Accueil > Forum > > > > Somme d'entiers
Somme d'entiers
mardi 31 décembre 2002 à 10:09:26 |
Somme d'entiers

PiraTmaT
|
Bonjour, Je dispose d'une suite d'un certain nombre d'entiers aléatoires inférieurs ou égaux à 100. Je dois déterminer s'il est possible de regrouper un certain nombre de .. nombres parmi ceux de la liste dont la somme serait égale à la demi-somme de tous les éléments de la liste ... Quelqu'un as-t-il une autre idée que d'essayer tous les cas ? J'ai déja trouvé quelques cas particuliers pour faciliter les recherches, mais rien de bien efficace ... Merci d'avance
|
|
mardi 31 décembre 2002 à 10:36:36 |
Re : Somme d'entiers

Funcky
|
Le plus grand avec le plus petit, puis le plus grand avec le deuxième, avec le troisième .. jusqu'a ce que ca depasse la moitié, ensuite tu prend l'avant dernier et tu recommence et ainsi de suite jusk'a ce ke le plus grand nombre restant soit plus petit que le quart de la liste. C'est un peu plus rapide que de tous les tester mais il y a surment moyende faire mieux ... =============================== Funcky  =============================== On dit que seulement dix personnes au monde comprenaient Einstein. Personne ne me comprend. Suis-je un génie ?------------------------------- Réponse au message : ------------------------------- > Bonjour, > Je dispose d'une suite d'un certain nombre d'entiers aléatoires inférieurs ou égaux à 100. > Je dois déterminer s'il est possible de regrouper un certain nombre de .. nombres parmi ceux de la liste dont la somme serait égale à la demi-somme de tous les éléments de la liste ... Quelqu'un as-t-il une autre idée que d'essayer tous les cas ? J'ai déja trouvé quelques cas particuliers pour faciliter les recherches, mais rien de bien efficace ... Merci d'avance
|
|
mardi 31 décembre 2002 à 11:07:24 |
Re : Somme d'entiers

PiraTmaT
|
Je peux déja vous donner les quelques conditions que j'ai trouvé ... ça peut aider ...
Si le nombre d'entiers est impair, alors c'est impossible. Si il y a un nombre impair d'entiers pairs, alors c'est impossible. Si le plus grand entier de la liste est plus grand que la demi-somme totale, alors c'est impossible. Si la somme de deux entiers est plus grande que la demi-somme totale, alors un seul de ces entiers est dans le groupe.
Bon voila, rien de révolutionnaire, mais encore fallait-il le dire ..
|
|
mardi 31 décembre 2002 à 11:16:22 |
Re : Somme d'entiers

Funcky
|
Bein alor, t'as qua appliker ces conditions à ce ke j'ai mis, la ca devrait etre tout bon non ??? =============================== Funcky  =============================== On dit que seulement dix personnes au monde comprenaient Einstein. Personne ne me comprend. Suis-je un génie ?------------------------------- Réponse au message : ------------------------------- > Je peux déja vous donner les quelques conditions que j'ai trouvé ... ça peut aider ... > > Si le nombre d'entiers est impair, alors c'est impossible. > Si il y a un nombre impair d'entiers pairs, alors c'est impossible. > Si le plus grand entier de la liste est plus grand que la demi-somme totale, alors c'est impossible. > Si la somme de deux entiers est plus grande que la demi-somme totale, alors un seul de ces entiers est dans le groupe. > > Bon voila, rien de révolutionnaire, mais encore fallait-il le dire ..
|
|
mardi 31 décembre 2002 à 11:21:09 |
Re : Somme d'entiers

PiraTmaT
|
J'avoue ne pas avoir suivis ton raisonnement à propos du dernier quart ?
|
|
mardi 31 décembre 2002 à 12:29:56 |
Re : Somme d'entiers

Funcky
|
donk, si tu par du plus grad et ke tu aditionne chaque fois un plus petit, ca ne sert à rien de tester ceux qui valent moi ke le quart de la somme totale, puiske on n'arrivera jamais à la moitié .... Je te conseille d'attribuer à chake nombre un flag qui vo 1 au debut, et chake fois ke tu es sur k'il ne sert à rien, tu le met à 0 (avec les conditions que tu as données par exemple) et tu ne teste que ceux qui on un flag de 1 par exmple avec la methode ke j'ai donnée ma methode : ex : 1 2 3 5 7 8 (peits nombres pour plus de facilité ...) somme 26 moitié 13 8 + 1 = 9 8 + 2 = 10 8 + 3 = 11 8 + 5 = 13 flag 0 sur 5 et 8, tu sai kil vont à deux fo plu le tester et ca sert à rien de tester 8 + des valeurs au dessus de 5, vu ke t deja au dessus de la moitié PS : tu t'arrete quand la somme est plus grande ou egale à la moitié, et tu me un flag 0 sur le nombre) 7 + 1 = 8 7 + 2 = 9 7 + 3 = 10 3 fo plus tester ni en dessous, paske de toute facon, tu as deja essayé tout les nombres au dessus, donk il n'y aura que des nombres inferieurs ou égaux à 3, et leur somme ne vaudrat jamais la moitié (c ca ke je voulai dire par le quart) En ayant verifié tes conditions avant, je crois que ca sera la meilleur méthode (a moins qu'il n'y ai une formule mathématique mais ca m'etonnerait ....) Euhhhh je me comprend, j'espère que tu comprendras aussi ... =============================== Funcky  =============================== On dit que seulement dix personnes au monde comprenaient Einstein. Personne ne me comprend. Suis-je un génie ?------------------------------- Réponse au message : ------------------------------- > > J'avoue ne pas avoir suivis ton raisonnement à propos du dernier quart ?
|
|
mardi 31 décembre 2002 à 12:40:30 |
Re : Somme d'entiers

PiraTmaT
|
Oki, j'ai compris ta méthode. Mais je peux avoir jusqu'à 100 entiers. Autrement dit, au cas où je ne trouverais pas avant un groupe qui fonctionne, je suis obligé de tester des groupes qui vont jusqu'a 50 entiers ... Et chaque fois que fois que nombre d'entier par groupe augmente, le nombre de possibilités augmente ... J'ai pas encore trouvé d'idées pour programmer une méga boucle .. pour l'instant, j'arrive à programmer une fonction de vérification pour un nombre d'entier précis d'entiers dans le groupe. Si quelqu'un pouvait méviter de programmer 50 fois la meme fonction avec une boucle incorporée de plus à chaque fois, vous auiez toute ma gratitude ;-)
|
|
mardi 31 décembre 2002 à 13:10:53 |
Re : Somme d'entiers

Funcky
|
tu partirait d'une struct liste { int entier; int flag = 1; } avec un struct liste tab[100]; et un NMAX, correspndant au nombre d'entiers ... et moitié corrsepondant a la somme des entiers divisé par deux int i = NMAX - 1; int j = 0; int groupe = 3; bool continue = true; while (continue == true) { while (tab .entier + tab[j].entier <= moitié) { if (tab[j].flag == 1) { if (tab[i].entier + tab[j].entier == moitié) { tab[i].flag = groupe; tab[j].flag = groupe; groupe++; } } j++; } tab[i].flag = 0; i--; if (tab[i].entier < (moitié / 2)) { continue = false; } }
ca te donnerai un tableau avec tout les nombres dont les flags vallent 1 ou 0 si il ne vont pas avec les autres un flag > 1 correspondant au N° du groupe.
C'est la seulle solution que je vois ...
PS : je viend de taper ca sans le tester, mais normalement ca devrait être bon ...
===============================
Funcky 
===============================
[i]On dit que seulement dix personnes au monde comprenaient Einstein. Personne ne me comprend. Suis-je un génie ?------------------------------- Réponse au message : ------------------------------- > Oki, j'ai compris ta méthode. > Mais je peux avoir jusqu'à 100 entiers. > Autrement dit, au cas où je ne trouverais pas avant un groupe qui fonctionne, je suis obligé de tester des groupes qui vont jusqu'a 50 entiers ... Et chaque fois que fois que nombre d'entier par groupe augmente, le nombre de possibilités augmente ... J'ai pas encore trouvé d'idées pour programmer une méga boucle .. pour l'instant, j'arrive à programmer une fonction de vérification pour un nombre d'entier précis d'entiers dans le groupe. Si quelqu'un pouvait méviter de programmer 50 fois la meme fonction avec une boucle incorporée de plus à chaque fois, vous auiez toute ma gratitude ;-)
|
|
mardi 31 décembre 2002 à 13:11:53 |
Re : Somme d'entiers

Funcky
|
fait chier !!!! j'avait tout bien mis avec les decalages pour voir plus clair et il me remet tout sur la meme ligne !!!!! ouiiiiiiiiiiiiiiinnnnnnnnnnnnnnnnnnnn =============================== Funcky  =============================== On dit que seulement dix personnes au monde comprenaient Einstein. Personne ne me comprend. Suis-je un génie ?------------------------------- Réponse au message : ------------------------------- > > tu partirait d'une > > struct liste > { > int entier; > int flag = 1; > } > > avec un > > struct liste tab[100]; > > et un NMAX, correspndant au nombre d'entiers ... > et moitié corrsepondant a la somme des entiers divisé par deux > > int i = NMAX - 1; > int j = 0; > int groupe = 3; > bool continue = true; > > while (continue == true) > { > while (tab .entier + tab[j].entier <= moitié) > { > if (tab[j].flag == 1) > { > if (tab[i].entier + tab[j].entier == moitié) > { > tab[i].flag = groupe; > tab[j].flag = groupe; > groupe++; > } > } > j++; > } > tab[i].flag = 0; > i--; > if (tab[i].entier < (moitié / 2)) > { > continue = false; > } > } > > > ca te donnerai un tableau avec tout les nombres dont les flags vallent 1 ou 0 si il ne vont pas avec les autres > un flag > 1 correspondant au N° du groupe. > > C'est la seulle solution que je vois ... > > PS : je viend de taper ca sans le tester, mais normalement ca devrait être bon ... > > =============================== > > Funcky  > > =============================== > > [i]On dit que seulement dix personnes au monde comprenaient Einstein. Personne ne me comprend. Suis-je un génie ?> > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Oki, j'ai compris ta méthode. > > Mais je peux avoir jusqu'à 100 entiers. > > Autrement dit, au cas où je ne trouverais pas avant un groupe qui fonctionne, je suis obligé de tester des groupes qui vont jusqu'a 50 entiers ... Et chaque fois que fois que nombre d'entier par groupe augmente, le nombre de possibilités augmente ... J'ai pas encore trouvé d'idées pour programmer une méga boucle .. pour l'instant, j'arrive à programmer une fonction de vérification pour un nombre d'entier précis d'entiers dans le groupe. Si quelqu'un pouvait méviter de programmer 50 fois la meme fonction avec une boucle incorporée de plus à chaque fois, vous auiez toute ma gratitude ;-) >
|
|
mardi 31 décembre 2002 à 13:19:22 |
Re : Somme d'entiers

PiraTmaT
|
------------------------------- Réponse au message : ------------------------------- > > tu partirait d'une > > struct liste > { > int entier; > int flag = 1; > } > > avec un > > struct liste tab[100]; > > et un NMAX, correspndant au nombre d'entiers ... > et moitié corrsepondant a la somme des entiers divisé par deux > > int i = NMAX - 1; > int j = 0; > int groupe = 3; > bool continue = true; > > while (continue == true) > { > while (tab .entier + tab[j].entier <= moitié) > { > if (tab[j].flag == 1) > { > if (tab[i].entier + tab[j].entier == moitié) > { > tab[i].flag = groupe; > tab[j].flag = groupe; > groupe++; > } > } > j++; > } > tab[i].flag = 0; > i--; > if (tab[i].entier < (moitié / 2)) > { > continue = false; > } > } > > > ca te donnerai un tableau avec tout les nombres dont les flags vallent 1 ou 0 si il ne vont pas avec les autres > un flag > 1 correspondant au N° du groupe. > > C'est la seulle solution que je vois ... > > PS : je viend de taper ca sans le tester, mais normalement ca devrait être bon ... > > =============================== > > Funcky  > > =============================== > > [i]On dit que seulement dix personnes au monde comprenaient Einstein. Personne ne me comprend. Suis-je un génie ?> > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Oki, j'ai compris ta méthode. > > Mais je peux avoir jusqu'à 100 entiers. > > Autrement dit, au cas où je ne trouverais pas avant un groupe qui fonctionne, je suis obligé de tester des groupes qui vont jusqu'a 50 entiers ... Et chaque fois que fois que nombre d'entier par groupe augmente, le nombre de possibilités augmente ... J'ai pas encore trouvé d'idées pour programmer une méga boucle .. pour l'instant, j'arrive à programmer une fonction de vérification pour un nombre d'entier précis d'entiers dans le groupe. Si quelqu'un pouvait méviter de programmer 50 fois la meme fonction avec une boucle incorporée de plus à chaque fois, vous auiez toute ma gratitude ;-) >
|
|
Cette discussion est classée dans : entiers, nombre, liste, certain, somme
Répondre à ce message
Sujets en rapport avec ce message
Aruthmétique sur grands entiers ??? [ par Cygnus ]
J'ai à effectuer des opérations (+,-,'/,*) sur des grands nombres entiers (positifs et négatifs), tout en utilisant les fonctions membre de la classe
recherche [ par dvpm ]
je suis débutant et j'essaie de mettre au point un programme qui permet à son utilistareur de rentrer des nombres (des entiers positifs) ua clavier
Liste de nombres aléatoires [ par byoushin ]
Bonjour,je cherche comment générer une liste de nombre aléatoire.J'ai essayé en initialisant dans main srand(GetTickCount()); ou aussi srand(time(NULL
Nombre limite d'enregistrements... [ par Clonk ]
Bonjour,dans mon appli, j'ouvre des fichiers que je triate ligne par ligne (j'ai posté à propos de ça plus tot...)par rapport à chaque ligne, je dois
Combinaison des entiers [ par ghada ]
J'aime bien avoir un algorithme qui permet de générer toutes les combinaisons d'une liste d'entiers c'est à dire 2^n avec n le nombre d'entiers de la
calculer la somme des chiffres d'un nombre donné - NTL et nombres ZZ [ par scelw ]
Je dois faire un exercice.Sachant que c'est pour travailler avec des très grands nombres (de plusieurs millions de chiffres), il faut utiliser la clas
pointeur de classe [ par gbcha ]
bonjour,J'ai un problème avec microsoft visual C++. J'avais crée un certain nombre de classe, avec un certain nombre de pointeurs sur ces classes. J'a
Lire un certain nombre de bits dans un fichier [ par tekila_bandita ]
Bonjour, j'aimerais savoir comment faire pour lire un certain nombre de bits dans un fichier...Donc enfaite, j'ouvre mon fichier en mode binaire à par
Nombre d'éléments dans une liste [ par JesusQuintana ]
Salut @ tous, Je voudrais réaliser une fonction qui permet de compter le nombre d’éléments dans une liste chaînée en algo. Fonction long (d :l
[LangageC]Tri d'une liste chainée d'entiers. [ par sleyze ]
Bonsoir, quelqu'un pourrait il me donner une fonction permettant de trier une liste chainée L dans l'ordre croissant en utilisant un tri autre que le
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|