Я хочу создать массив из всех возможных комбинаций трех переменных, которые могут быть истинными или ложными (т. Е. 8 возможных комбинаций).Создание всех возможных комбинаций true/false
Я пытаюсь создать куб в левом верхнем углу на этом изображении
Так что выход должен быть чем-то вроде
points = [
// first square
{
id: '000',
truths: [false, false, false]
position: [0, 0]
},
{
id: '100',
truths: [true, false, false]
position: [5, 0]
},
{
id: '010',
truths: [false, true, false]
position: [0, 5]
},
{
id: '110',
truths: [true, true, false]
position: [5, 5]
},
// second square
{
id: '001',
truths: [false, false, true]
position: [2.5, 2.5]
},
{
id: '101',
truths: [true, false, true]
position: [7.5, 2.5]
},
{
id: '011',
truths: [false, true, true]
position: [2.5, 7.5]
},
{
id: '111',
truths: [true, true, true]
position: [7.5, 7.5]
},
];
lines = [
{ from: '000', to: '100' },
{ from: '000', to: '010' },
{ from: '000', to: '001' },
{ from: '100', to: '101' },
{ from: '100', to: '110' },
{ from: '001', to: '101' },
{ from: '001', to: '011' },
{ from: '101', to: '001' },
{ from: '101', to: '111' },
...
]
Я не знаю, как идти через все возможные значения истинности и создавать эти точки.
Один из подходов может быть использование для цикла
for (var i=0; i<Math.pow(2, 3); i++) {
...
}
, но это не помогает мне назначая возможные значения истинности.
Возможны 2^n возможных значения. Если вы не хотите использовать вложенные для циклов (вы действительно не должны), то извлекайте биты целых чисел «0 ... 2^n». Значения 'n' в' истинах' будут битами целого числа. – plasmacel
Я просто не понимаю, если ваш заказ равен 0,4,2,3,1,5,7,8, как вам поможет двоичный подход. Почему бы вам не использовать только цифры. – Redu
@Redu Я не понимаю, о чем вы говорите. Приказ не имеет значения.Все целые числа от 0 до 8 будут представлять 3 бита, которые соответствуют массиву 'истины' в аналогии OP. 2^n целых чисел = 2^n 'истины'. В двоичном выражении числа можно рассматривать как «массивы» бит: 0 = [0,0,0], 1 = [0,0,1], 2 = [0,1,0], 3 = [0,1 , 1], 4 = [1,0,0], 5 = [1,0,1], 6 = [1,1,0], 7 = [1,1,1]. – plasmacel