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
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|