Strange counters (Residue Number Systems)

Strange counters (Residue Number Systems)

70.011 Lượt nghe
Strange counters (Residue Number Systems)
This video explains Residue Number Systems (RNS). The usual way to define RNS is as follows: We choose n integers (a1,a2,...,an) greater than 1 such that they are relatively prime (no shared prime factors). The Chinese Remainder Theorem says that each number x in the range 0...a1*a2*...*an has a unique set of residues (x%a1,x%a2,...,x%an). The proof for addition and multiplication is as follows: Say a number x has x%5 = n. So x=5a + n for some integer a. Similarly if y has y%5 = m, then y = 5b + m. So x + y = 5a + 5b + n + m. And (x + y) % 5 will cause all the multiples of 5 to drop, and we are left just with (n + m) % 5. Similarly for multiplication, we'll get x * y = 25ab + 5ma + 5nb + nm and again % 5 will leave just (nm) % 5. Regarding the comment at 13:52: Let's start with the (5,7,3) counter showing (1,0,0). We are looking for a number x such that x%5=1 and x%7=0 and x%3=0. Satisfying the last two requirements is easy: x=7*3=21 will obviously satisfy x%7=x%3=0. In this case, it also satisfies x%5=1, but this is a coincidence.  Now the (5,7,3) counter showing (0,1,0). Again, x=5*3=15 will satisfy x%5=x%3=0. And again, we're lucky to have x%7=1. Finally, the (5,7,3) counter showing (0,0,1). Here, x=5*7=35 satisfies x%5=x%7=0. But we're out of luck: x%3=2 and not 1 as we need. We know however that to satisfy x%5=x%7=0 then x must be a multiple of 35. In the range 0...105 there is only one more option: x=2*35=70, which satisfies x%3=1 as well. Generally however, with larger moduli, searching like this can be tedious. So here's the general, efficient algorithm: Let M be the size of the wheel that shows 1. And N1,N2,...,Nk be the sizes of the wheels that show 0, and N=N1*N2* . . . *Nk their product. M and N share no prime factors. According to a known result in number theory, because M and N share no prime factors, then the equation N*a+M*b=1 has a solution where a and b are integers. Note that the equation N*a+M*b=1 is in regular arithmetic, not modular arithmetic. For example, if M=5 and N=21, then 21a+5b=1 can be solved with a=1 and b=-4. Also, there's an efficient algorithm, called the Extended Euclidean Algorithm, that is given N and M and it finds a and b. This is useful for us, because x=N*a satisfies all the requirements we need: * N is the product of the sizes N1, N2,..,Nk Therefore x%N1=(N*a)%N1=0, and similarly x%N2=x%N3= . . . =0. * Rearranging the terms, we get that x=N*a=1-N*b. This means that x%M=(1-M*b)%M=1,  (because the %M operation drops all multiples of M),  and so the size-M wheel shows 1. Music ID: 1YYBAL9DCELLYTIS