Bonjour;
je doit créer une matrice(3par3) qui contient des nombres réels générés aléatoirement;de tel sorte que la somme des éléments de chaque ligne (résp colonne) est égale à 1.
PLEASE![]()
THANK'S A LOT
Bonjour;
je doit créer une matrice(3par3) qui contient des nombres réels générés aléatoirement;de tel sorte que la somme des éléments de chaque ligne (résp colonne) est égale à 1.
PLEASE![]()
THANK'S A LOT
Hi,
Pout moi, ton énoncé contient une erreur conceptuelle qui le rend insoluble tel quel.Envoyé par magicstar
Car l'exigence sur la somme des valeurs sur les lignes et colonnes est absolument incompatible avec "des nombres réels générés aléatoirement".
Si on veut le faire effectivement avec des valeurs aléatoires, alors le temps de trouver une solution, et l'Univers aura sérieusement vieilli.
Bonsoir,
Pour moi ça a l’aire réalisable,
Remarque: Sur mon algo la somme des cases doit donner 100.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Traitons la première ligne : Pour la première case, c1 := random(101) ; Pour la deuxième case, si c1 est différent de 100 alors c2 := random(101-c1) ; sinon c2 := 0 pour la troisième case si c1+c2 différent 100 alors c3 := 100-(c1+c2) ; sinon c3 := 0 ; Traitons la deuxième ligne : première case : si c1 est différent de 100 alors c4 := random(101-c1) sinon c4 := 0 ... ... ainsi de suite pour les autres cases.
Ho,
Oui, en le prenant comme ça, ça peut aller, mais ce n'est pas aussi simple que ce que tu fais, il faut également tenir compte des sommes dans les colonnes. Si on prend ton principe de ne tirer que quelques valeurs au hasard, c'est quand même soluble, sans trop de difficulté.Envoyé par Ultima
Par contre, dans l'énoncé, je lis "qui contient des nombres réels générés aléatoirement", pas "dont une partie sont des nombres réels générés aléatoirement".
Problème supplémentaire, il y est question de réels, pas d'entiers. Gare aux problèmes de tests et erreurs de calculs avec les réels.
Bonsoir,
Un nombre généré à partir d’un nombre généré aléatoirement est lui-même aléatoire.Envoyé par droggo
c1 := random(x),
c2 := f(c1) implique que c2 est lui-même aléatoire, non ?
n/100 est un nombre du type REAL.
J’ai fait mon exemple avec 100, alors il suffit de diviser par 100.
Ho,
Ca dépend de la fonction.Envoyé par Ultima
Dans ta méthode, ce sont des if..., et tu forces des valeurs : ce n'est pas aléatoire.
En fait, dans ta méthode, seul le 1er nombre tiré peut être vraiment aléatoire, dès le second, il y a une condition à respecter : ce n'est plus aléatoire.
Le problème avec les réels, c'est la repésentation par la machine, qui fait que seule une toute petite partie des valeurs possibles dans l'étendue offerte par les types les gérant a une représentation exacte (par exemple, 0.1 n'est pas représenté exactement, car il n'y a pas de représentation binaire permettant de le faire).Envoyé par Ultima
De ce fait, les tests de comparaison échoue souvent, parce que une même valeur numériquement unique, (c'est à dire avec un calcul "manuel") sera probablement représentée par l'ordinateur de 2 manières différentes si les calculs y menant sont différents.
Il faut prendre beaucoup de précautions pour calculer avec des réels.
Reprenons avec ta méthode : il faut être concient qu'elle va conduire très souvent à une impasse, qui se révélera généralement en vérifiant la valeur pour la dernière case, qui nécessitera 2 valeurs différentes pour rendre la ligne ou la colonne valides, mais parfois aussi avant.
Au-delà de ça, je suis étonné par l'énoncé, car ce genre de "carré magique" se remplit généralement avec des entiers (strictement positifs).
Partager