0
给定n
变量我想创建小数点,它等于真值表中的所有可能的二进制变化。例如生成真值表小数的公式
对于a
,b
和c
令:
a = 11110000 (240)
b = 11001100 (204)
c = 10101010 (170)
对于p
和q
令:
p - 1100 (12)
q - 1010 (10)
我已经摸索出公式中的任何一组创建的第一个数字,就像这样:
n = number of variables
x = 2^n
decimal = (2^x) - (2^(x/2));
我已经用JavaScript实现这个像这样:
var vars = ["a", "b", "c"];
var bins = [];
for (var i = 0; i < vars.length; i++) {
var rows = 1 << vars.length;
bins[i] = (1 << rows) - (1 << ((rows)/2));
console.log(bins[i].toString(2)); // logs 11110000
}
我不知道如何来计算数字的休息,没有人知道一个公式来做到这一点?
,如果你从0横扫小数到n了toString(2)转换应该打沿途每一个可能的组合。 – dandavis
@dandavis这是行不通的。二进制中的0-3是“00”,“01”,“10”,“11”。当然,我可以很容易地写出这个交替的1和0,但是计算时间呈指数级增长,这并不好。我想找到一个数学公式,这意味着我不必创建怪异的大循环。 –