我有一些动态生成的布尔逻辑表达式,如:
占位符被布尔代替.我是不是该,
True or (True or False)
和eval
它?bool
或Conjunction
/ Disjunction
对象并递归评估它?建议欢迎.
我正在尝试构建一个简单的Prolog SAT求解器.我的想法是用户应该使用Prolog列表输入要在CNF(Conjuctive Normal Form)中解决的布尔公式,例如(A或B)和(B或C)应该表示为sat([[A,B]] ,[B,C]])和Prolog试图找到A,B,C的值.
我的以下代码不起作用,我不明白为什么.在这一行跟踪调用:(7)sat([[true,true]])? 我期待start_solve_clause([_ G609,_G612]]).
免责声明:对不起几天前我甚至不知道Prolog或SAT问题的糟糕代码.
PS:欢迎提出解决SAT问题的建议.
跟踪
sat([[X, Y, Z], [X, Y]]).
Call: (6) sat([[_G609, _G612, _G615], [_G609, _G612]]) ? creep
Call: (7) start_solve_clause([_G609, _G612, _G615]) ? creep
Call: (8) solve_clause([_G615], _G726) ? creep
Call: (9) or(_G725, _G615, true) ? creep
Exit: (9) or(true, true, true) ? creep
Exit: (8) solve_clause([true], true) ? creep
Call: (8) or(_G609, _G612, true) ? creep
Exit: (8) or(true, true, true) ? creep
Exit: (7) start_solve_clause([true, …
Run Code Online (Sandbox Code Playgroud) 我正在使用C++ 11,两者都在没有任何警告的情况下进行编译,一个是最好的方法吗?
if(a && b)
Run Code Online (Sandbox Code Playgroud)
要么
if(a and b)
Run Code Online (Sandbox Code Playgroud) 我发现自己经常这样做:
$foo = true;
$foo = $foo && false; // bool(false)
Run Code Online (Sandbox Code Playgroud)
使用按位运算符,您可以使用&=
和|=
简写:
$foo = 1;
$foo &= 0; // int(0)
Run Code Online (Sandbox Code Playgroud)
鉴于按位运算1
并且0
在功能上等效于true
和的布尔运算false
,我们可以依赖于类型转换并执行以下操作:
$foo = true;
$foo &= false; // int(0)
$foo = (bool)$foo; // bool(false)
Run Code Online (Sandbox Code Playgroud)
...但是这很丑陋并且违背了使用速记赋值语法的目的,因为我们必须使用另一个语句来将类型返回到布尔值.
我真正想做的是这样的事情:
$foo = true;
$foo &&= false; // bool(false)
Run Code Online (Sandbox Code Playgroud)
......但&&=
和||=
无效的运营商,很明显.所以,我的问题是 - 是否有一些其他含糖的语法或者可能是一个不起眼的核心功能可以作为替身?如果变量尽可能短$foo
,那么使用$foo = $foo && false
语法并不是什么大问题,但是具有多个维度的数组元素和/或对象方法调用会使语法非常冗长.
我正在阅读Hadley Wickham关于强制的高级R部分,我无法理解这种比较的结果:
"one" < 2
# [1] FALSE
Run Code Online (Sandbox Code Playgroud)
我假设R将2强制转换为一个字符,但我不明白为什么R返回FALSE
而不是返回错误.这对我来说尤其令人费解
-1 < "one"
# TRUE
Run Code Online (Sandbox Code Playgroud)
所以我的问题有两个方面:首先,为什么这个答案,第二,有没有办法看到R如何在这些例子中转换逻辑向量中的各个元素?
当您希望一组或另一组 2 个条件为真时,您如何将 4 个条件链接在一起?
更准确地说,我想做:
如果用户已登录且操作系统版本为 Windows 10
或者
用户已登录且 LogonUI 进程未运行
不要理会这些命令,它们在隔离时都可以正常工作,我的问题是将它们链接在一起。
例如我有:
if (
(Get-WmiObject –ComputerName $poste –Class Win32_ComputerSystem).UserName`
-and`
(Get-WmiObject -Computer $poste -Class Win32_OperatingSystem).Version -like "*10*"
)
{ echo do X }
Run Code Online (Sandbox Code Playgroud)
这是工作正常。我想在同一个if
条件块中添加其他条件。我试过这个,但它不起作用:
if (
(Get-WmiObject –ComputerName $poste –Class Win32_ComputerSystem).UserName`
-and`
(Get-WmiObject -Computer $poste -Class Win32_OperatingSystem).Version -like "*10*"`
-or`
(Get-WmiObject –ComputerName $poste –Class Win32_ComputerSystem).UserName`
-and -not`
(Get-Process -ErrorAction SilentlyContinue -ComputerName $poste -name logonui)
)
{ echo do X }
Run Code Online (Sandbox Code Playgroud)
你如何像这样链接多个“块”?我知道我可以做两个不同的 IF,我让它工作了,但是没有办法将它全部链接到一个 IF 中吗?(IF 包含很多代码,我不想用两个 …
我"false"
从服务器获得了Json .我回答,bool
但它是Json所以它在浏览器类型String
而不是bool
.
因此,如果我(!data)
每次想要检查时都会运行,"false" == false
那么它们就无法运行.
所以,我怎么能解析bool
从String
JavaScript中呢?
"true" == true
和"false" == false
.然后代码(!data)
可以检查它是什么[ true
和false
]
在PostgreSQL中有一种更快的方法来基本上在几行中执行if吗?
说我有一张桌子
ticket | row | archived
1 | 1 | true
1 | 2 | true
1 | 3 | true
2 | 1 | false
2 | 2 | true
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以在ticket =的列下面做一个if语句?因此,ticket = 1的地方是真的
true && true && true = true
Run Code Online (Sandbox Code Playgroud)
并且ticket = 2将是假的,因为
false && true = false
Run Code Online (Sandbox Code Playgroud)
或者我应该坚持下去
SELECT ( (SELECT COUNT(*) FROM table WHERE ticket = 1)
= (SELECT COUNT(*) FROM table WHERE ticket = 1 AND archived = true) )
Run Code Online (Sandbox Code Playgroud) 我已经可以将32位整数转换为它们的rgba值,如下所示:
pixelData[i] = {
red: pixelValue >> 24 & 0xFF,
green: pixelValue >> 16 & 0xFF,
blue: pixelValue >> 8 & 0xFF,
alpha: pixelValue & 0xFF
};
Run Code Online (Sandbox Code Playgroud)
但我真的不知道如何扭转它.
Ruby允许你这样做
[5,5,5].sum
=> 15
Run Code Online (Sandbox Code Playgroud)
有没有什么可以在数组上做布尔算术
[true, true, true].sum
=> true
[true, false, true].sum
=> false
Run Code Online (Sandbox Code Playgroud) boolean-logic ×10
boolean ×3
comparison ×2
javascript ×2
c++ ×1
clpb ×1
coercion ×1
exists ×1
if-statement ×1
logic ×1
php ×1
postgresql ×1
powershell ×1
prolog ×1
python ×1
r ×1
ruby ×1
sql ×1
string ×1
syntax ×1
tree ×1