给定一串整数,我想将它们转换为基数n,并且对于每一位,将它们加起来并用n来修改它们。最简单的方法来添加位mod n?
例如:假设n = 3,并假设我想在4,4,4,2中添加mod 3的位。这些基数为3的数字是11,11,11,02。最低有效位合起来到1 + 1 + 1 + 2 = 5 = 2 mod 3.第二个最低有效位加起来为1 + 1 + 1 + 0 = 3 = 0 mod 3.然后答案是02 base 3 = 2.或者,if我们在加法之前没有转换为基数3,只是做了二进制,我们有100,100,100,010。从最低到最高的结果位是:0 + 0 + 0 + 0 = 0 mod 3,0 + 0 + 0 + 1 = 1 mod 3,1 + 1 + 1 + 0 = 0 mod 3,所以答案是010 = 2.
n = 2的情况很简单,可以只是XOR的一切。有没有办法来推广这个?
所以按'位'你的意思是'n-ary digit'? – phs 2012-08-12 01:25:15
抱歉,我不确定你的意思。你能澄清吗? – Popcorn 2012-08-12 01:27:12
技术上,如果它不是基数2,它们只是数字,而不是'位'(BInary digiTS) – 2012-08-12 01:27:24