标签: boolean-operations

算法查找匹配布尔查询的大型int数组的子集

假设我有一个大的M 32位整数数组,其中每个值设置不超过N位.现在我想返回匹配查询Target AND Value == Target的子集,即目标位出现在数组值中的值.

蛮力很容易,只需迭代数组并提取target&value == target.如果M变得非常大,这变得太慢了.任何人都知道如何将数组转换为更适合搜索的数据结构?

一种方法是为每个位存储数组或值(因此对于32位数组,您需要其中的32个),然后仅搜索与目标值中的每个位匹配的值.除非N接近32或目标接近N位设置,否则这会有所帮助.由于我所寻找的基本上是部分匹配,散列或排序似乎没有帮助.

确切的正确结果是必需的.这将无需访问并行硬件(如GPU或使用SIMD).

我将使用C++,但只是一些指向算法或想法的指针是好的.最可能的情况是M = 100000和N = 8并且经常被调用.

重申一点:我需要部分匹配(如item = 011000匹配目标= 001000)不完全匹配.尽管M项是提前知道的,但目标的可能值可以是任何值.

我终于决定坚持使用蛮力.对于80,000件物品,不值得做其他任何事情.我想如果数据集的大小更像是800,000,000,那么它可能是值得的.

arrays algorithm optimization boolean-operations

14
推荐指数
1
解决办法
1366
查看次数

为什么C#中的1 && 2是假的?

我对另一个问题感到沮丧.所以我写了这个例子.

在C中,以下是真实的.见演示

int main()
{
printf("%d", 1 && 2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

1
Run Code Online (Sandbox Code Playgroud)

在C#中.这是假的.为什么这是假的?此外,我不明白为什么我需要在这个例子中创建bool运算符,但不是在我的另一个问题,但无论如何.为什么以下是假的?对我来说完全是无稽之谈.

这里描述使得下面的假的逻辑

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            MyInt a=1, b=2;
            bool res=a && b;
            Console.WriteLine("result is {0}", res);
        }

        class MyInt
        {
            public int val;
            public static bool operator true(MyInt t) { return t.val != 0; }
            public static bool operator false(MyInt t) { return t.val == 0; …
Run Code Online (Sandbox Code Playgroud)

c# boolean boolean-operations

13
推荐指数
2
解决办法
4216
查看次数

bool上的字符串比较

我很确定这是我新手PHP知识中的一个简单的基本缺陷,但是当发生以下情况时我感到很惊讶:

在此输入图像描述

$resultTRUE......那为什么它被认为等于字符串"email"?我猜这是因为,从技术上讲,它是一个bool而且它不是假的?因此,当它与字符串(例如"email")进行比较时,它返回true.

我应该更改我的方法作为string包含"true"(而不是return true;成功)的结果返回,还是我应该采取另一种方式?

谢谢.

php conditional boolean-operations

13
推荐指数
1
解决办法
4035
查看次数

OR,AND运算符

新手问题.如何计算公式A f B的值,其中f - 二元函数OR或AND?

c# boolean-operations

12
推荐指数
2
解决办法
15万
查看次数

使用XOR在括号前移出

如果我有这样的产品总和z*a + z*b + z*c + ... + z*y,就可以z在括号之前移动因子,这是相同的:z(a + b + c + ... y).

我想知道如果使用按位XOR而不是乘法,可能(如果是)可以做同样的技巧. z^a + z^b + ... z^y -> z^(a + b + ... + y)

a, b, c ...在添加之前,或许应该进行预处理,例如逻辑否定或其他内容?z可能会发生变化,因此如果需要,预处理不应该依赖于特定的z价值.

c++ boolean-logic multiplication logical-operators boolean-operations

12
推荐指数
1
解决办法
2967
查看次数

为什么名为minterms的产品名为minterms?

他们有理由这样做吗?我的意思是,在minterms的总和中,你用输出1寻找条件; 我不明白为什么他们称之为"minterms".为什么不是maxterms因为1大于0?

这背后有什么理由我不知道吗?或者我应该接受它而不问为什么?

logic boolean-logic boolean boolean-expression boolean-operations

12
推荐指数
2
解决办法
2万
查看次数

哪个JavaScript库可以使用贝塞尔曲线进行布尔运算?

是否存在可以对路径执行布尔运算的Javascript库(贝塞尔曲线)?

我知道Paper.js和Raphael.js,但现在都无法执行这些操作.

javascript svg bezier boolean-operations html5-canvas

12
推荐指数
3
解决办法
3213
查看次数

Swift布尔值<invalid>

附加的屏幕截图说明了一切:我有一个有效的真Bool,我用bang操作符否定它,并且(Xcode告诉我)我的值无效.

看来这个"无效"值的行为就好像是假的.但真的,wtf?

在此输入图像描述

boolean-operations swift

11
推荐指数
1
解决办法
581
查看次数

&#=在C#中?(布尔表达式)

可能重复:
为什么没有|| =或&& =运算符?

通过纯粹的意外,我今天发现了

 a &= GetBool();
Run Code Online (Sandbox Code Playgroud)

是不一样的

 a = a && GetBool();
Run Code Online (Sandbox Code Playgroud)

多年来我一定误解了这一点.在第一个例子中,GetBool()即使"a"为假,也执行"".在第二个,它不是.

在C#中有什么东西可以实现"&& ="吗?

c# boolean-operations

10
推荐指数
2
解决办法
1800
查看次数

.Bool,.so 、?之间的区别 所以

我正在尝试找出上述例程之间的区别以及if语句是否像

say $y.Bool;
say $y.so;
say ? $y;
say so $y;
Run Code Online (Sandbox Code Playgroud)

会产生不同的结果。

到目前为止,对我而言,唯一明显的区别是?优先级高于so.Bool.so似乎是完全同义。这是正确的,(实际上)是完整的故事吗?

perl6 boolean-operations

10
推荐指数
1
解决办法
109
查看次数