Y a quelqu'un qui peut prouver les règles de la logique combinatoire par des calculs mathématiques, je l'ai peut être trouvé et je cherche quelqu'un qui peut valider mes calculs mathématiques, pas logique.
-----
Y a quelqu'un qui peut prouver les règles de la logique combinatoire par des calculs mathématiques, je l'ai peut être trouvé et je cherche quelqu'un qui peut valider mes calculs mathématiques, pas logique.
Je ne comprends pas exactement ce que tu cherches, ni le niveau de réponse auquel tu t'attends.
La logique relève de l'algèbre de boole, donc à la base la logique ce sont des mathématiques.
A+
C'est de prouver mathématiquement (additions, soustractions, multiplication mathématique) que, par exemple, a^b= #a.b|a.#b sans passer par le tableau de CARNO ou la distributivité ou toutes les définitions de base (a.a = a.1 = a|a = a, ...etc...).
Par cette méthode de calcul, j'ai créer une multiplication numérique à partir de portes logique ET et des additionneurs. Si cette multiplication est déjà crée de la sorte, j'ai rien inventer (ZUT!), sinon cette multiplication risque d'être plus rapide, il n'y a que 2 étapes: AND puis ADD.
depuis la nuit des temps jusqu'à aujourd'hui, on fait la multiplication
avec des décalages à gauche (x10 ou x2) et des additions...
J'ai l'impression que tu confonds algorithmique et mathématique.C'est de prouver mathématiquement (additions, soustractions, multiplication mathématique) que, par exemple, a^b= #a.b|a.#b sans passer par le tableau de CARNO ou la distributivité ou toutes les définitions de base (a.a = a.1 = a|a = a, ...etc...).
Par cette méthode de calcul, j'ai créer une multiplication numérique à partir de portes logique ET et des additionneurs. Si cette multiplication est déjà crée de la sorte, j'ai rien inventer (ZUT!), sinon cette multiplication risque d'être plus rapide, il n'y a que 2 étapes: AND puis ADD.
On peut voir cette multiplication révolutionnaire?
A+
Justement, cette multiplication est basée là dessus.
Je pose les équations binaires suivantes (à vérifier sur le tableau de CARNO):
a|b -> a OR b => s = a+b-a*b
a.b -> a AND b => s = a*b
a^b -> a XOR b => s = a+b-2*a*b
#a -> NOT a => s = 1-a
aEn -> a EXPOSANT n => s = aEn = a
Avec a, b et s E {0;1} et n E N*
Attention, les valeurs d'état 0 ou 1 ne sont pas des valeurs, elles sont définies par la valeur qui tend vers 0 ou 1 car dans certains cas, la division par 0 n'est pas conçevable.
Valeur infinie correspond à l'état de mémorisation, d'après calcul à base de porte logique en boucle (division dont le dénominateur tend vers 0).
Distributivité:
(a|b).c a.c|b.c
=> (a+b-a*b)*c \t=> a*c+b*c-a*b*c²
=> a*c+b*c-a*b*c => a*c+b*c-a*b*c
=> a*c+b*c-a*b*c²
Fonction XOR
a^b #a.b|a.#b
=> a+b-2*a*b => (1-a)*b+a*(1-b)-2*((1-a)a*(1-b))
=> a+b-a*b-a*b => b-a*b+a-a*b
=> a+b-a*b-a*b
=> a+b-2*a*b
Voilà quelques exemple. J'ai plancher là dessus pendant un bon moment et je souhaite que quelqu'un d'autre valide l'utilisation de ces principes de calculs. C'est vrai que dans certain cas il est plus facile et plus rapide d'utiliser le tableau de CARNO, mais ceci m'a permis de définir la multiplication:
A*B = (SOMME de 0 à n de (Ai))*(SOMME de 0 à n de (Bi))
= A*(SOMME de 0 à n de (Bi))
= (SOMME de 0 à n de (A*Bi))
D'où (A*Bi) équivaut à des AND (multiplication binaire) de l'ensemble des bits A avec un bit de B puis l'addition des tous ces résultats de AND. A noté que cette multiplication correspond exactement à celle que l'on fait à la main:
An ... A1 A0
* Bn ... B1 B0
--------------------
B0*(An ... A1 A0)
+ B1*(An ... A1 A0)
+ ...
+ Bn*(An ... A1 A0)
--------------------
Résultat
Si cette multiplication est plus performante que ceux existants, ces principes de calculs pourraient être utiles dans certain cas.
Merci de valilder ces principes!!!
Ne pas oublier que :
1/ + Bn*(An ... A1 A0) mais chaque résultat doit être décalé de n bit vers la gauche (c'est une multiplication par 2^n)
2/ que le "+" est un opérateur arithmétique (et non logique)
.... et que ça fait 100 ans ( en base 2, et des siècles en base 10) qu'on utilise cette méthode de l'addition successive avec décalage (mais il faut n coups d'horloge pour multiplier deux nombres binaire de n bits ou n additionneurs ce qui est une petite usine à gaz)
Je suis déjà dépassé à la 1ère ligne. Pour moi, un OU c'est s = a+b , + étant l'opérateur OU.a|b -> a OR b => s = a+b-a*b
et je ne parle même pas de :
Et c'est quoi ce t? C'est le temps? En logique combinatoire?Distributivité:
(a|b).c a.c|b.c
=> (a+b-a*b)*c \t=> a*c+b*c-a*b*c²
Petite parenthèse en passant. Pour les tableaux, ce n'est pas CARNO mais KARNAUGH
A+
Désolé, \t était un essai pour indiuqer une tabulation car l'affichage du texte est illisible.
En programmation, on utilise | pour OU ^ pour XOR, & (ou . dans ces cas) pour AND et # pour NOT. Tous les autres opérateurs sont mathématiques: +, -, *, /
Je réécrit:
Distributivité
S1 = (a|b)&c
=> (a+b-a*b)*c
S2 = (a&c)|(b&c)
=> a*c+b*c-a*b*c*c
=> a*c+b*c-a*b*c²
=> a*c+b*c-a*b*c
=> (a+b-a*b)*c
Donc S1 = S2
Fonction XOR
S1 = a^b
=> a+b-2*a*b
S2 = (#a&b)|(a&#b)
=> (1-a)*b+a*(1-b)-2*((1-a)*b)*(a*(1-b))
=> b-a*b+a-a*b-2*((b-a*b)*(a-a*b))
=> b+a-2*a*b-2*(b*a-a*b²-a²*b+(a*b)²)
=> b+a-2*a*b-0
=> a+b-2*a*b
Donc S1 = S2
Bonsoir,
je ne comprends pas bien , tout le monde sait qu'en binaire XOR et l'addition sont liées ainsi que AND et multiplication.
Voir 74285!
JR
l'électronique c'est pas du vaudou!
Connaît pas le 74285, pas de docs dispo sur internet!!
Trop fort pour moi, j'abandonne. Je n'ai jamais entendu parler de l'opérateur - en logique.S1 = (a|b)&c
=> (a+b-a*b)*c
Re
et oui cela date de l'époque héroïque ou l'on fabriquait des UC à la main.
c'est un multiplieur 4 bits x 4 bits destiné à la réalisation de multiplieur
utilisant la topologie Wallace tree.
http://www.andraka.com/multipli.htm#Wallace%20Trees
JR
l'électronique c'est pas du vaudou!