Déterminer le rang d'un enregistrement
Olympiades mathématiques, énigmes et défis
-
yann3556
- Messages: 8
- Enregistré le: 25 Juil 2018, 14:02
-
par yann3556 » 25 Juil 2018, 14:19
Bonjour,
Je ne sais pas trop où poster ce topic alors j'essaie là.
J'ai un fichier de 160 enregistrements de trios (I,J,K) qui sont construits par un tableau [1..4,1..8,1..5].
Comment savoir à quel trio (I,J,K) on a à faire en ne connaissant que le numéro d'enregistrement?
Par exemple le trio (1,1,1) est le premier, le second (1,1,2) et le dernier (4,8,5).
Je vous remercie par avance pour vos réponses.
-
pascal16
- Membre Légendaire
- Messages: 6663
- Enregistré le: 01 Mar 2017, 13:58
- Localisation: Angoulème : Ville de la BD et du FFA. gare TGV
-
par pascal16 » 25 Juil 2018, 14:38
[1..4,1..8,1..5]
numéro d'enregistrement : 132
problème : la division Euclidienne travaille dans une gamme de 0 à n-1, pas 1 à n, il faut adapter
pour I :
pour I fixe; il y a 40 enregistrements
soit i = (132-1)/40 (division Euclidienne)
on a I= i+1
I=4
reste de la division Euclidienne : (132-1)%40=11
maintenant à I et J fixé, il y a 5 enregistrements
soit j = 11/5 (division Euclidienne)
J=j+1
J=2
et aussi K= 11%5 + 1 =2
soit 422
-
Pseuda
- Habitué(e)
- Messages: 3222
- Enregistré le: 08 Avr 2015, 13:44
-
par Pseuda » 25 Juil 2018, 14:39
Bonjour,
Il y a 4*8*5=160 enregistrements.
Commence par diviser ton numéro -1 par 40, avec quotient et reste (division euclidienne).
Le quotient +1 te donne le 1er chiffre.
Divise le reste par 5 : le quotient +1 te donne le 2ème chiffre, le reste +1 te donne le dernier chiffre.
Pas vu ton message @pascal, je laisse.
-
yann3556
- Messages: 8
- Enregistré le: 25 Juil 2018, 14:02
-
par yann3556 » 25 Juil 2018, 14:57
Merci pour vos réponses.
J'avais pensé aussi à la division mais sans avoir votre formalisme et je butais aussi sur le dernier terme...
Encore merci.
-
pascal16
- Membre Légendaire
- Messages: 6663
- Enregistré le: 01 Mar 2017, 13:58
- Localisation: Angoulème : Ville de la BD et du FFA. gare TGV
-
par pascal16 » 25 Juil 2018, 15:45
en informatique, on peut écrire l façon de faire par un algo.
-> entrer le numéro
-> fonction décalage -1
-> calculer i, j et k par divisions Euclidiennes successive (*)
-> fonction décalage + 1 à appliquer à i, j et k pour avoir I, J et K
si (*) a comme paramètres le numéro et les 3 entiers des dimensions, les fonctions écrites peuvent resservir facilement
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 20 invités