Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Quel est cet algorithme ?


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : avril 2014
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Quel est cet algorithme ?
    Couin Couin

    Je travaille sur une appli permettant de communiquer avec des équipements en infrarouge, afin de "remplacer" l'utilisation d'un Palm et du logiciel constructeur.

    Dans le logiciel d'origine, il y a une fonction permettant de lire le numéro de série de la carte électronique de l'équipement.

    La communication se fait en infra rouge.
    Les codes envoyés ou reçus commencent toujours par 16 2 et finissent par 16 3 (c'est du décimal). Je ne les mets donc pas dans l'exemple ci dessous.

    J'ai beau chercher, je ne trouve pas l’algorithme permettant de convertir le code reçu en numéro de série (que l'on peut lire avec la version Palm)

    Numéro de série : 1343611856 - Code reçu : 0 51 2 8 123
    Numéro de série : 1627455751 - Code reçu : 0 7 4 11 74
    Numéro de série : 184813312 - Code reçu : 7 1 1 97 36
    Numéro de série : 738199303 - Code reçu : 7 7 0 44 110
    Numéro de série : 989923079 - Code reçu : 7 7 1 59 120

    Plusieurs cerveaux valant mieux qu'un , si l'un de vous a une idée , je suis preneur

    Merki et bon ouiK !
    Couin

  2. #2
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    3 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 3 934
    Points : 9 589
    Points
    9 589
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Vous avez entré le système
    	-51 y 	-2 z 	-8 s 	-123 t 	= -1343611856
    	-7 y 	-4 z 	-11 s 	-74 t 	= -1627455751
    -7 x 	- y 	- z 	-97 s 	-36 t 	= -184813312
    -7 x 	-7 y 		-44 s 	-110 t 	= -738199303
    -7 x 	-7 y 	- z 	-59 s 	-120 t 	= -989923079
     
    Ce système a une unique solution, qui est
     
    { s = -162396577885/18956, t = 15178066829/2708, x = 9258108553413/132692, y = 27647914695/18956, z = 6145159888101/18956 }.
    Conclusion: ce n'est pas une combinaison linéaire.

    Pourquoi ne serait-ce pas chiffré ?
    Es-tu allé voir la description du protocole utilisé par le constructeur ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 2 571
    Points : 5 557
    Points
    5 557
    Par défaut
    La conclusion de Flodelarab est bizarre... C'est une combinaison linéaire.

    Ici, tu as 5 équations, et 5 inconnues. Donc, sauf cas très particulier, on arrive à bâtir une relation 'linéaire' entre l'entrée et la sortie. Ici on trouve la relation donnée par Flodelarab.
    Ce qu'il faudrait, c'est vérifier avec 2 ou 3 autres exemples si la relation en question continue de donner le bon résultat.

    La relation donnée par Flodelarab permet de trouver le n° de série à partir du code reçu. ( à vérifier si elle marche au delà de ces 5 exemples)

    S'il s'avère que cette relation continue de marcher avec d'autres exemples, alors on pourra s'attaquer à la 2ème moitié de l'exercice : trouver le code reçu quand on connaît le n° de série.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : avril 2014
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Hello

    Merci pour les réponses

    Mon but est bien de trouver le numéro de série en fonction du code reçu et non l'inverse

    Je n'ai pas trop (du tout en fait lol) compris la déduction (par exemple s = -162396577885/18956 ) de Flodelarab . Quand je fias cette opération, ca ne donne pas du tout (-)8 que j’ai par exemple avec le premier code.

    Je n'ai aucune possibilité d'avoir des infos constructeur

    Merki

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 2 571
    Points : 5 557
    Points
    5 557
    Par défaut
    On va mettre des équations. Et donc on va déjà donner des noms à nos 6 variables :

    s= n° de série
    a,b,c,d,e = les 5 codes reçus.

    Sur les 5 exemples que tu donnes, on constate que s = 69771414.655*a + 1458531.056*b + 324180200.892*c - 8567027.742*d + 5604899.124*e ... aux arrondis près.
    Vérifie sur les 5 lignes, cette formule marche.

    Mais on constate aussi que cette autre formule marche : s = -234957562.952*a - 22002193.857* b + 7179004.806 * d + 14403870.390*e + 636615646.2
    Et il y a probablement d'autres formules qui marchent.

    Avant de continuer, il faut vérifier avec d'autres jeux de données si c'est la formule 1 qui est la bonne, ou bien la 2, ou bien peut-être aucune des 2 !
    Si tu as d'autres jeux de données, fais la vérification.

    Si tu constates que la 1ère formule marche sur une dizaine d'autres exemples, alors génial. On va pouvoir passer à la 2ème partie de la question, trouver les 5 codes reçus à partir du n° de série.

    Mais très sincèrement, je pense que ce n'est pas le cas, et que la vraie formule est un truc tordu à souhait, pour empêcher les hackers comme nous de la trouver.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    3 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 3 934
    Points : 9 589
    Points
    9 589
    Par défaut
    S'il y avait eu une formule élégante, les coefficients calculés auraient été entiers. Comme ce n'est pas le cas, il y a fort à parier qu'un sixième exemple ferait tout capoter.
    Donc on peut exclure les bases différentes et les combinaisons.

    Je rajoute une question aux questions déjà posées :
    Pourquoi y aurait-il le moindre lien entre le numéro de série (gravé sur la plaque ? ) et le code d'identification "électronique" (ou "logiciel") ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : avril 2014
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Re,

    Merci pour ta réponse
    Je suis allé récup des codes en plus mais je dois être royalement débile car je ne sais pas d'où sortent ces chiffres (69771414.655 etc etc) .

    serial :822085376
    0 7 0 49 116

    serial :990119687
    7 7 4 59 125

    serial :1191182855
    7 2 0 71 0

    serial :788791815
    7 2 4 47 108

    serial :889389319
    7 1 3 53 114

    serial :603981575
    7 7 0 36 102

    serial :889389319
    7 1 3 53 114

    Pour ce qui est de hacker, je pense que personne d'autre ne s'est penché sur la création d'un soft sur PC pour remplacer le Palm, d'autant plus que je ne vois pas vraiment l’intérêt d’empêcher de lire un numéro de série de carte avec autre chose que le Palm lol

  8. #8
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : avril 2014
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Concernant le numéro de série, c'est celui lu par le logiciel constructeur sur le Palm.
    Les numéro en décimal, c’est ce que je récupère avec un capteur infra rouge USB (qui émule un port COM) lorsque je fais la lecture du numéro de série avec le Palm, en mettant le capteur sous le Palm pour qu’il reçoive le code en même temps.

    Mais j'avoue qu'il y a une drôle de logique car sur la lecture d'un autre paramètre (Pitch par exemple), les codes ne sont pas linéaires avec les valeurs (par exemple pour 800, j'ai le code 32 3 , pour 750 j'ai 283 2, pour 850 j'ai 073 3 ).

  9. #9
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 2 571
    Points : 5 557
    Points
    5 557
    Par défaut
    As-tu vérifié si les 2 formules que j'ai proposées marchent avec les nouveaux exemples que tu as ?

    Pour l'autre jeu de données tu dis que pour 750, tu reçois (283;2). Tu es sûr ? Jusque là, tous tes codes reçus étaient entre 0 et 127, ce qui correspond à une certaine logique en informatique. Et soudain, tu as une valeur au-delà de 127, et surtout, au-delà de 255 ??? Bizarre.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : avril 2014
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Je n'avais pas eu le temps de vérifier (mais c’est surtout que je n'ai toujours pas compris d'où sortaient les valeurs multiplicatrices ?) car on a eu une panne sur autre chose donc parti lol
    Je viens de le faire, concentrant la première formule, les 5 premiers SN sont ok, mais les derniers apportés cette nuit ne donnent pas de bons résultats.

    Pour la 2ème formule, aucun SN ne correspondant, j’ai beau revérifier la formule que j'ai saisie dans excel pour faire le calcul.

    Concernant la plage des valeurs, oui cela peut aller au dessus de 127 (car par exemple pour le paramètre Max Sorter Speed, donc la valeur est 2500, les codes sont 196 9. Si je change la valeur, là aussi les codes ne sont pas linéaires). Pour moi ça peut aller jusqu'à 255 en effet (283 doit être une erreur de saisie, ca doit être plutôt 183).

    Et aussi, pour corser le tout lol, j'ai constaté que les deux générations de cartes que l'on a répondent différemment sur un Read Config (la première génération de carte renvoies tous les paramètres un à un , alors que la seconde, tous sur la même ligne, et les codes de certains paramètres sont différents selon première ou seconde génération. Mais ça à la limite ce n’est pas trop grave car je fais juste une comparaison des codes reçus avec ceux d'une configuration qui est valide). Les secondes cartes n'ont pas de numéro de série unique (le SN affiché par la pocket est 000000-1 et le code reçu est 255 255 255 66).

    En gros c'est un vrai boxon leur truc mdr
    Je pense qu'une charte de codes est en dur dans le soft et que le soft fait la correspondance entre les codes reçus et ceux de la charte pour afficher les valeurs.

    Il faudrait avoir le code source mais là on peut rêver en 4K
    A moins qu'on puisse désassembler une application .prc (Format d'appli Palm).

  11. #11
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 2 571
    Points : 5 557
    Points
    5 557
    Par défaut
    D'où viennent les 5 valeurs multiplicatrices ?
    Quand tu étais à l'école, tu as dû apprendre à résoudre un système avec 2 équations et 2 inconnues ? Et peut-être que tu as fait aussi des exercices avec 3 équations et 3 inconnues.
    Quand il y a autant d'équations que d'inconnues, il y a en général une solution. Ici, on a un système avec 5 équations et 5 inconnues (le système écrit par Flodelarab au tout début de la discussion, et il avait même donné les solutions). C'est un peu plus long à résoudre que les systèmes avec 2 équations et 2 inconnues, mais ça se fait. Il faut juste être méticuleux.
    Dans mon cas, j'ai demandé à Excel de le faire à ma place ; je n'ai pas vérifié, mais normalement, les fractions données par Flodelarab correspondent à mon premier jeu de coefficient. Sinon, un de nous 2 s'est trompé, et ce n'est pas moi.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : avril 2014
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Ah oui en effet je pensais pas du tout à ces histoires d'x équations à x inconnues lol

    Cependant je pense de plus en plus que le protocole de codage est propriétaire.

  13. #13
    Membre averti

    Homme Profil pro
    Directeur de projet
    Inscrit en
    mai 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2013
    Messages : 53
    Points : 379
    Points
    379
    Par défaut L'infini et au delà
    Bonjour,

    Quelque soit le nombre d'échantillons fournit, le nombre de solutions est infini. Ce qui peut ramener à un nombre de solutions raisonnables est l'application d'un principe de simplicité (toute relative) et un principe de rapidité. Ces principes induisent une recherche d'algorithme travaillant sur des entiers avec certainement des opérations binaires globales et bit à bit.

    Mais il faut aussi un parc de couples de valeurs étendus. Or 11 valeurs ne sont pas assez (10 fois plus serait à mon sens un minimum). Par exemple, les 11 valeurs de série sont codées sur 32 bits (moins le bit de signe).

    Nom : Série en binaire.png
Affichages : 60
Taille : 23,0 Ko

    Comme on le voit seuls 15 bits semblent utiles mais sans qu'on sache si cela est une propriété du codage ou le simple effet du peu de valeurs.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  14. #14
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : avril 2014
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Hello,

    Merci pour cette réponse

    Bon je pense qu'on est surtout face à une formule aussi facile à trouver que celle permettant de calculer la vitesse de refroidissement du fût du canon MDR

Discussions similaires

  1. [WD14] [CrypteRapide] Quel est l'algorithme utilisé
    Par b_reda31 dans le forum WinDev
    Réponses: 9
    Dernier message: 24/06/2011, 01h44
  2. Quel est cet objet ? (Image jointe)
    Par Spredzy dans le forum Android
    Réponses: 2
    Dernier message: 14/04/2010, 02h09
  3. Quel est cet objet attendu sur Instr ?
    Par Walterbelo dans le forum VBScript
    Réponses: 5
    Dernier message: 15/06/2009, 21h03
  4. Quel est cet encodage? Comment le décoder?
    Par moalmeyer dans le forum IO
    Réponses: 6
    Dernier message: 24/07/2006, 14h28
  5. [c#] Quel est cet objet ?
    Par SDuh dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/02/2006, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo