Francois GrieuEn fait, un bête OU exclusif, ou une addition modulo 2^40,
c'est un compromis sensé entre efficacité et complexité
dès lors que la transmission de chaque morceau de liste
est faite avec contrôle cryptographique (qui est "orthogonal"
à cette vérification); c'est insensible à l'ordre (mais pas
à la présence de numéros en double), et la probabilité de
ne pas détecter une erreur aléatoire est de 1 sur un million
de million, avec des hypothèses raisonables sur le caractère
aléatoire de chaque élément de liste transmis.
L'addition modulo 2^40 me conviendrait encore mieux
que la valeur de contrôle à base de 2 premiers.
Beaucoup plus simple, et si le risque est effectivement
de 1/2^40, c'est tout à fait correct.
J'aurai besoin de pouvoir indiquer le nom de la méthode,
et de documenter un minimum le risque.
Pouvez-vous m'indiquer une référence, un article de
wikipedia, ou quelque chose de ce genre ?
Francois Grieu
En fait, un bête OU exclusif, ou une addition modulo 2^40,
c'est un compromis sensé entre efficacité et complexité
dès lors que la transmission de chaque morceau de liste
est faite avec contrôle cryptographique (qui est "orthogonal"
à cette vérification); c'est insensible à l'ordre (mais pas
à la présence de numéros en double), et la probabilité de
ne pas détecter une erreur aléatoire est de 1 sur un million
de million, avec des hypothèses raisonables sur le caractère
aléatoire de chaque élément de liste transmis.
L'addition modulo 2^40 me conviendrait encore mieux
que la valeur de contrôle à base de 2 premiers.
Beaucoup plus simple, et si le risque est effectivement
de 1/2^40, c'est tout à fait correct.
J'aurai besoin de pouvoir indiquer le nom de la méthode,
et de documenter un minimum le risque.
Pouvez-vous m'indiquer une référence, un article de
wikipedia, ou quelque chose de ce genre ?
Francois GrieuEn fait, un bête OU exclusif, ou une addition modulo 2^40,
c'est un compromis sensé entre efficacité et complexité
dès lors que la transmission de chaque morceau de liste
est faite avec contrôle cryptographique (qui est "orthogonal"
à cette vérification); c'est insensible à l'ordre (mais pas
à la présence de numéros en double), et la probabilité de
ne pas détecter une erreur aléatoire est de 1 sur un million
de million, avec des hypothèses raisonables sur le caractère
aléatoire de chaque élément de liste transmis.
L'addition modulo 2^40 me conviendrait encore mieux
que la valeur de contrôle à base de 2 premiers.
Beaucoup plus simple, et si le risque est effectivement
de 1/2^40, c'est tout à fait correct.
J'aurai besoin de pouvoir indiquer le nom de la méthode,
et de documenter un minimum le risque.
Pouvez-vous m'indiquer une référence, un article de
wikipedia, ou quelque chose de ce genre ?
Désolé, pas trouvé.
Désolé, pas trouvé.
Désolé, pas trouvé.
Francois GrieuDésolé, pas trouvé.
Erf, ça y est tu as été pris en défaut !
Note que ça a pris du temps :p.
Francois Grieu
Désolé, pas trouvé.
Erf, ça y est tu as été pris en défaut !
Note que ça a pris du temps :p.
Francois GrieuDésolé, pas trouvé.
Erf, ça y est tu as été pris en défaut !
Note que ça a pris du temps :p.
Correction: la somme modulo 2^40 détecte la supression
d'un segment de la liste sauf quand la somme des nombres
supprimés est exactement DIVISIBLE PAR 2^40
Correction: la somme modulo 2^40 détecte la supression
d'un segment de la liste sauf quand la somme des nombres
supprimés est exactement DIVISIBLE PAR 2^40
Correction: la somme modulo 2^40 détecte la supression
d'un segment de la liste sauf quand la somme des nombres
supprimés est exactement DIVISIBLE PAR 2^40
Encore une dernière remarque : indépendamment
de la difficulté ou facilité de mise en oeuvre, temps
d'exécution, etc., utiliser un nombre premier
plutôt que 2^40 a-t-il un intérêt quelconque ?
Il me semble que ça aurait une fiabilité
démontrablement meilleure que 2^40,
puisque des erreurs de certains modèles
seraient détectées avec P et pourraient ne pas
l'être avec 2^40.
(erreurs d'ajouts ou de soustractions d'un
diviseur de 2^40)
Ca rejoint votre remarque sur l'utilisation
de 2^40-1 (si je reformule ce que vous avez
dit, son avantage provient du fait qu'il n'est
divisible par aucune puissance de 2, et donc meilleur
pour détecter les "bousillages de bits" dans
les implémentations très courantes en binaire).
Par exemple le plus petit nombre premier P
strictement supérieur à la borne sup. des entiers
de la liste.
Encore une dernière remarque : indépendamment
de la difficulté ou facilité de mise en oeuvre, temps
d'exécution, etc., utiliser un nombre premier
plutôt que 2^40 a-t-il un intérêt quelconque ?
Il me semble que ça aurait une fiabilité
démontrablement meilleure que 2^40,
puisque des erreurs de certains modèles
seraient détectées avec P et pourraient ne pas
l'être avec 2^40.
(erreurs d'ajouts ou de soustractions d'un
diviseur de 2^40)
Ca rejoint votre remarque sur l'utilisation
de 2^40-1 (si je reformule ce que vous avez
dit, son avantage provient du fait qu'il n'est
divisible par aucune puissance de 2, et donc meilleur
pour détecter les "bousillages de bits" dans
les implémentations très courantes en binaire).
Par exemple le plus petit nombre premier P
strictement supérieur à la borne sup. des entiers
de la liste.
Encore une dernière remarque : indépendamment
de la difficulté ou facilité de mise en oeuvre, temps
d'exécution, etc., utiliser un nombre premier
plutôt que 2^40 a-t-il un intérêt quelconque ?
Il me semble que ça aurait une fiabilité
démontrablement meilleure que 2^40,
puisque des erreurs de certains modèles
seraient détectées avec P et pourraient ne pas
l'être avec 2^40.
(erreurs d'ajouts ou de soustractions d'un
diviseur de 2^40)
Ca rejoint votre remarque sur l'utilisation
de 2^40-1 (si je reformule ce que vous avez
dit, son avantage provient du fait qu'il n'est
divisible par aucune puissance de 2, et donc meilleur
pour détecter les "bousillages de bits" dans
les implémentations très courantes en binaire).
Par exemple le plus petit nombre premier P
strictement supérieur à la borne sup. des entiers
de la liste.
Encore une dernière remarque : indépendamment
de la difficulté ou facilité de mise en oeuvre, temps
d'exécution, etc., utiliser un nombre premier
plutôt que 2^40 a-t-il un intérêt quelconque ?
Il me semble que ça aurait une fiabilité
démontrablement meilleure que 2^40,
puisque des erreurs de certains modèles
seraient détectées avec P et pourraient ne pas
l'être avec 2^40.
(erreurs d'ajouts ou de soustractions d'un
diviseur de 2^40)
Ca rejoint votre remarque sur l'utilisation
de 2^40-1 (si je reformule ce que vous avez
dit, son avantage provient du fait qu'il n'est
divisible par aucune puissance de 2, et donc meilleur
pour détecter les "bousillages de bits" dans
les implémentations très courantes en binaire).
Par exemple le plus petit nombre premier P
strictement supérieur à la borne sup. des entiers
de la liste.
Encore une dernière remarque : indépendamment
de la difficulté ou facilité de mise en oeuvre, temps
d'exécution, etc., utiliser un nombre premier
plutôt que 2^40 a-t-il un intérêt quelconque ?
Il me semble que ça aurait une fiabilité
démontrablement meilleure que 2^40,
puisque des erreurs de certains modèles
seraient détectées avec P et pourraient ne pas
l'être avec 2^40.
(erreurs d'ajouts ou de soustractions d'un
diviseur de 2^40)
Ca rejoint votre remarque sur l'utilisation
de 2^40-1 (si je reformule ce que vous avez
dit, son avantage provient du fait qu'il n'est
divisible par aucune puissance de 2, et donc meilleur
pour détecter les "bousillages de bits" dans
les implémentations très courantes en binaire).
Par exemple le plus petit nombre premier P
strictement supérieur à la borne sup. des entiers
de la liste.
Encore une dernière remarque : indépendamment
de la difficulté ou facilité de mise en oeuvre, temps
d'exécution, etc., utiliser un nombre premier
plutôt que 2^40 a-t-il un intérêt quelconque ?
Il me semble que ça aurait une fiabilité
démontrablement meilleure que 2^40,
puisque des erreurs de certains modèles
seraient détectées avec P et pourraient ne pas
l'être avec 2^40.
(erreurs d'ajouts ou de soustractions d'un
diviseur de 2^40)
Ca rejoint votre remarque sur l'utilisation
de 2^40-1 (si je reformule ce que vous avez
dit, son avantage provient du fait qu'il n'est
divisible par aucune puissance de 2, et donc meilleur
pour détecter les "bousillages de bits" dans
les implémentations très courantes en binaire).
Par exemple le plus petit nombre premier P
strictement supérieur à la borne sup. des entiers
de la liste.
Phil l'ancien
Par exemple le plus petit nombre premier P
strictement supérieur à la borne sup. des entiers
de la liste.
Pourquoi pas; dans votre cas c'est 2^40 + 15. Peut-être
qu'un premier à l'écriture binaire moins remarquable
donnerais une légèrement meilleure protection.
Rappel: v := (v*m + aj)%n avec m n premiers distincts
choisis "arbitrairement" n'est pas associatif (est dépendant
de l'ordre des aj), mais est "démontrablement" sur contre
les erreurs non intentionelles de toutes natures.
Pour le rendre associatif (et indépendant des doublons),
il suffit de commencer par trier les aj en ordre croissant
(et éliminer les doublons). En prime cela facilite la
recherche dans la liste.
Phil l'ancien
Par exemple le plus petit nombre premier P
strictement supérieur à la borne sup. des entiers
de la liste.
Pourquoi pas; dans votre cas c'est 2^40 + 15. Peut-être
qu'un premier à l'écriture binaire moins remarquable
donnerais une légèrement meilleure protection.
Rappel: v := (v*m + aj)%n avec m n premiers distincts
choisis "arbitrairement" n'est pas associatif (est dépendant
de l'ordre des aj), mais est "démontrablement" sur contre
les erreurs non intentionelles de toutes natures.
Pour le rendre associatif (et indépendant des doublons),
il suffit de commencer par trier les aj en ordre croissant
(et éliminer les doublons). En prime cela facilite la
recherche dans la liste.
Phil l'ancien
Par exemple le plus petit nombre premier P
strictement supérieur à la borne sup. des entiers
de la liste.
Pourquoi pas; dans votre cas c'est 2^40 + 15. Peut-être
qu'un premier à l'écriture binaire moins remarquable
donnerais une légèrement meilleure protection.
Rappel: v := (v*m + aj)%n avec m n premiers distincts
choisis "arbitrairement" n'est pas associatif (est dépendant
de l'ordre des aj), mais est "démontrablement" sur contre
les erreurs non intentionelles de toutes natures.
Pour le rendre associatif (et indépendant des doublons),
il suffit de commencer par trier les aj en ordre croissant
(et éliminer les doublons). En prime cela facilite la
recherche dans la liste.