Bonjour,
Voici mon probleme :
J'ai deux nombres entiers composes de 9 chiffres chacun :
- Un groupID (unique)
- Un lineNumber (unique pour chaque groupID).
Tout cela est dans une base de donnees ou les groupID representent des fichiers et les lineNumber leur lignes...
A partir de la, je cherche la fonction miracle qui me donnerait a partir d'un lineNumber et d'un groupID un numero TOTO qui satisfairait les conditions suivantes :
- a partir d'un groupId et d'un lineNumber on peut calculer un TOTO unique
- le TOTO est code sur 9 chiffres
- le TOTO est entier (ce n'est pas un CHAR(8)).
- optionel : a partir du TOTO on peut retrouver le groupId et le lineNumber qui ont servi a le creer.
Des idees?
# Re: Probleme de math
Posté par Ben . Évalué à 5.
sachant que le cardinal de AxA est supérieur à celui de A, je ne pense pas que cela soit possible...
# Re: Probleme de math
Posté par roland pistolero . Évalué à 5.
Tu cherche une bijection entre deux ensembles finies, les deux ensembles auront donc le même cardinal. Or c'est pas le cas dans ton cas. Le premier ensemble est le produit cartésien de l'ensemble des nombres à 9 chiffres par lui même, donc de cardinal 10^9*10^9 = 10^18, le second c'est l'ensembe des nombres à 9 chiffres (les TOTO) qui de cardinal 10^9.
Donc mathématiquement ça ne peut pas marcher.
# Re: Probleme de math
Posté par riba . Évalué à 1.
# Re: Probleme de math
Posté par Nap . Évalué à 3.
il y a 10^9 TOTOs possibles
et il y a 10^9*10^9 = 10^18 couples (groupID,lineNumber)
donc si un groupID possède 10^9 lineNumber, et que tu calcules tous les TOTOs de ce groupID, soit tu vas en trouver 10^9, et dans ce cas tu as parcourus tous les TOTOs possibles et il ne t'en reste plus pour les autres groupID, soit tu en as moins que 10^9 et ça veut dire qu'il y en a au moins 2 identiques.
tu ne peux pas non plus retrouver le groupID et le lineNumber, car cela voudrais dire que tu peux coder dans 10^9 possibilités l'information contenue dans 10^18 possibilités
[^] # Re: Probleme de math
Posté par schyzomarijks . Évalué à 2.
[^] # Re: Probleme de math
Posté par Nap . Évalué à 3.
bien tenté mais la zlib c'est pas la garcimorelib, elle te transforme pas un chiffre en un chiffre plus petit :)
[^] # Re: Probleme de math
Posté par MagicNinja . Évalué à 1.
sinon retourner 1
voila... je l'ai reduit ton chiffre ;-)
[^] # Re: Probleme de math
Posté par Nap . Évalué à 1.
à moins que l'objectif de la zlib ne m'ait echapé :)
PS: je voulais dire nombre et pas chiffre dans mon post :)
[^] # Re: Probleme de math
Posté par philz . Évalué à 2.
Création :
insert into matable (toto, groupId, lineNumber) values (nextval(toto_seq), $groupId, $lineNumber);
Puis :
select toto from matable where groupId = $groupId and lineNumber = $lineNumber;
Ou :
select groupId, lineNumber from matable where toto = $toto;
Magique, non ?
[^] # Re: Probleme de math
Posté par dromadaire35 . Évalué à 2.
garcimorelib suxor aussi (mais un peu moins)
i2bp roxorise des mamans ours et répond parfaitement à ce problème.
My 2 cents.
[^] # Re: Probleme de math
Posté par Nap . Évalué à 2.
j'avais trouvé ça encore plus puissant qu'I2BP :)
[^] # Re: Probleme de math
Posté par Erwan . Évalué à 1.
[^] # Re: Probleme de math
Posté par grossbaff . Évalué à 1.
;->
[^] # Re: Probleme de math
Posté par Ackira . Évalué à 1.
[^] # Re: Probleme de math
Posté par daggett . Évalué à 1.
[^] # Re: Probleme de math
Posté par Nap . Évalué à 1.
on peut aussi faire varier la couleur des chiffres ou leur taille en milimètres, ou bien leur angle par rapport à l'horizontale, ou encore la longueur des pointillés avec lesquels ils sont dessinés
# Re: Probleme de math
Posté par Clem Yeats . Évalué à 1.
[^] # Re: Probleme de math
Posté par grossbaff . Évalué à 1.
par contre, c'est à sens unique ;-)
en gardant un integer, un CRC d'une 50aine de caractères ? ça doit être possible ...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.