cs_kamis
Messages postés5Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention16 février 2006
-
7 févr. 2006 à 17:16
cs_kamis
Messages postés5Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention16 février 2006
-
16 févr. 2006 à 12:47
Un carré maigique de taille n est un arrangement en carré des nombres
1,2,3,4,5..., n² tel que si l'on effectue la somme des éléments d'une
ligne, d'une colonne ou de l'une des 2 diagonales, on obtienne toujours
la même valeur. Le dessin suivant represente un carré magique de
taille5.
15,
8,
1,
24,
17,
----
16,
14,
7,
5,
23,
----
22,
20,
13,
6,
4,
----
3,
21,
19,
12,
10,
----
9,
2,
25,
18,
11
Un carré peut être representé par un tableau C à deux dimensions:
1. Formuler en fonction de n la valeur constante de la somme des éléments d'une ligne, d'une colomme ou d'une diagonale.
2. Formuler les relations caracterisant un carré maigique.
3. Ecrire un programme C++ qui verifie si C est magique (C et n sont
supposés donnés). On vérifiera notamment que tous les éléments de C
sont dans l'intervalle [1...n²] et qu'ils sont tous distincts.
NB: -On produira un texte de l'analyse du problème avant la codification
Gendal67
Messages postés627Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 juillet 20112 7 févr. 2006 à 22:08
1 ) Il ne sait pas comment faire ou il veut gagner du temps et pas se fatiguer
2 ) C'est un travail "mensuel" comme précisé dans le titre, donc pas à rendre fin de l'année
1. Essaie déja au taton avec n 2, n 3, n = 4 et essaie de conjecturer. Fais ensuite un prog qui utilise cette conjecture pour remplir un tableau avec n fixé et vérifie que ta conjecture tient toujours.
2. Aucune idée
3. Suffit de calculer et pour la vérification, aucun souci
Gendal67
Messages postés627Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 juillet 20112 7 févr. 2006 à 22:36
Ton exercice m'a plu alors je l'ai fais :
1. somme d'une suite arithmétique de raison r 1> somme de tous les éléments du tableau : ( n² ( 1 + n² ) ) / 2
Donc par ligne, par colonne, ou par diagonale, ça donne : ( n² ( 1 + n² ) ) / 2n
2. Soient 5 nombres a, b, c, d, e appartenant à l'intervalle [1...n²].
On a, pour chaque ligne, chaque colonne, chaque diagonale : a + b + c + d + e = ( n² ( 1 + n² ) ) / 2n
C'est incomplet je sais, mais jvois pas quoi rajouter de plus...
Gendal67
Messages postés627Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 juillet 20112 7 févr. 2006 à 22:39
Oui, j'ai oublié de remettre uValue à 0 dans les boucles de calcul des lignes & colonnes...rajoute le. Pis j'ai une boucle for() à laquelle j'ai oublié le 3ème param...inatention sans doute...sinon j'ai bien relu, normalment ça marche tranquille
Vous n’avez pas trouvé la réponse que vous recherchez ?
Gendal67
Messages postés627Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 juillet 20112 9 févr. 2006 à 17:09
1. C'est simple, ton tableau contient les nombres 1,2,3,...,n². Considère une suite Un définie par U0 = 1 artithmétique de raison r = 1. On a donc U1 = U0 + 1, U2 = U1 + 1, etc...
On sait, depuis la classe de première, que la somme des "n" termes d'une suite arithmétique de raison r est donnée par la formule :
Dans notre cas, on a n² termes dans un tableau.
La somme de tous les éléments d'un tableau magique d'ordre n vaut donc :
(n² * (1 + n²) ) / 2
Or, il y a n lignes et n colonnes. Chaque somme de ligne ou de colonne est égal à une valeur; identique quelque soit la colonne. Il suffit donc de diviser la somme de tous les éléments du tableau par le nombre de ligne.
On obtient ainsi :
(n² * (1 + n²) ) / (2 * n)
2. On te demande juste de formuler mathématiquement le fait que la somme des termes d'une ligne ou d'une colonne est toujours la même valeur.
3. Alléger dans quel sens? On aurait du mal, il y a juste le necessaire. Pour aider à ta compréhension sur les pointeurs, dis toi que int** n'est rien d'autre que int[][] (tableau de deux dimensions)....il s'agit juste d'une autre façon d'écrire les choses.
Sinon je ne vois pas ce qui a de dur dans le reste du code...et puis ta question d'allègement me parait suspecte...à croire que t'as même pas essayer de comprendre le code que j'ai posté...sinon tu aurais vu qu'il n'y a pas de chose superflu...peut-être manque t-il des optimisations, mais ça c'est secondaire....surtout quand on demande aux autres de trouver les solutions sans se fatiguer...
Il n'y a rien à rajouter...le code me semble opérationnel....jregretterais presque de t'avoir aider...ça n'a pas l'air de t'avoir réelement rendu service...
cs_kamis
Messages postés5Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention16 février 2006 10 févr. 2006 à 13:29
salut Gendal67
Je te remercie;
Ca faisait plusieurs année que je ne faisais pas les maths(suite ..etc)
et surtout j'avais par du presque tout les notions de
programmation .je dois fournir bcp pour me mettre en jour.
Gendal67
Messages postés627Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 juillet 20112 10 févr. 2006 à 21:47
Il n'y a rien à dire, j'espère que ce code te sera profitable
Et puis, comme je le disais, l'énoncé me plaisait, donc no soucy, ça ma fait plaisir de faire l'exercice
J'espère que tu auras une bonne note!
Bonne soirée
cs_kamis
Messages postés5Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention16 février 2006 11 févr. 2006 à 15:06
salut Gendal67
Après avoir passé presque toute la nuit sur l'exo, je suis rendu compte
que tu avais deja tous corrigé debut la première et aussi à la
manière la plus simple.
Tout etait base sur la formule du carré et bon positionnement des compteurs.
cs_kamis
Messages postés5Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention16 février 2006 16 févr. 2006 à 12:47
salut Gendal67
Après plusieurs de recherche; le programme n'a pas pu se compiler; tout
compte fait je desire avoir le programme compiler si possible et
surtout le prototype.
la question 1 et 2 m'ont été très bien je t'envoyerais après la facon dont nous l'avions traiter.