问题标签 [logic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
18 回答
3898 浏览

c# - C# 逻辑顺序和编译器行为

在 C# 中(并且可以随意回答其他语言),运行时评估逻辑语句的顺序是什么?

例子:

运行时首先评估哪个语句 -

或者:

?

有没有时候编译器会向后评估语句?也许当涉及“或”运算符时?


& 被称为逻辑按位运算符,将始终评估所有子表达式

什么是何时使用按位运算符而不是“短路布尔值”的一个很好的例子?

0 投票
4 回答
3608 浏览

c# - 确定变量是否等于值“列表”中的值的最简洁方法

如果我在 C# 中有一个变量需要检查以确定它是否等于一组变量中的一个,那么最好的方法是什么?

我不是在寻找将集合存储在数组中的解决方案。我很好奇是否有解决方案以某种方式使用布尔逻辑来获得答案。

我知道我可以做这样的事情:

我很想知道我是否可以做更多这样的事情:

显然以上方法行不通,但我有兴趣看看是否有比我的第一个示例更简洁的方法,它必须为每个测试值一遍又一遍地重复相同的变量。

更新:
我决定接受 CoreyN 的回答,因为这似乎是最简单的方法。我认为它很实用,而且对于新手来说仍然很容易理解。

不幸的是,在我工作的地方,我们的系统使用 .NET 2.0 框架,而且短期内没有机会升级。除了我能想到的最明显的解决方案之外,是否还有其他不依赖 .NET 3.5 框架的解决方案:

0 投票
5 回答
914 浏览

logic - 在 Verilog 中高效合成 4 对 1 函数

我需要在 Veriog 中实现 4 对 1 功能。输入是 4 位,一个从 0 到 15 的数字。输出是单个位,0 或 1。每个输入给出不同的输出,并且从输入到输出的映射是已知的,但输入和输出本身却不是。我希望 vcs 能够成功优化代码,并让它尽可能短/整洁。到目前为止我的解决方案:

必须声明 c 是丑陋的,我不知道 vcs 是否会识别那里的 K-map。这将与案例陈述或连接范式的赋值一样有效吗?

0 投票
5 回答
5101 浏览

testing - 测试梯形逻辑

我们都知道测试 OO 系统的各种方法。但是,看起来我将要做一个项目,我将在其中处理 PLC 梯形逻辑(不要问:/),我想知道是否有测试系统有效性的好方法。

到目前为止,我看到的唯一方法就是简单地构建一个巨大的表,其中包含系统的所有已知状态以及生成的输出状态。这适用于简单的“如果输入 A 打开,则打开输出 B”的情况。不过,我认为这不适用于更复杂的结构。

0 投票
18 回答
976 浏览

algorithm - 从能够容纳一百万行的表中找到未使用的 ID 的最佳算法是什么

详细说明.. a) 表 (BIGTABLE) 可以容纳一百万行,主键为 ID。(随机且唯一) b) 可以使用什么算法来获得迄今为止尚未使用的 ID。这个数字将用于在表 BIGTABLE 中插入另一行。

用更多细节更新了问题.. C)这个表已经有大约 100 K 行并且主键不是作为标识的集合。d) 目前,生成一个随机数作为主键,并在该表中插入一行,如果插入失败,则生成另一个随机数。问题是有时它会进入一个循环并且生成的随机数非常随机,但不幸的是,它们已经存在于表中。因此,如果我们在一段时间后重新尝试随机数生成数,它就会起作用。e) sybase rand() 函数用于生成随机数。

希望这个问题的补充有助于澄清一些观点。

0 投票
2 回答
603 浏览

calendar - 如何逻辑地组织重复性任务?

创建重复任务的最佳方式是什么?

我应该创建一些特殊的语法并对其进行解析,类似于 Linux 上的 Cronjobs,还是我应该更愿意使用每小时运行的 cronjob 来创建更多那些没有尽头的重复任务?

请记住,您可以拥有无​​穷无尽的重复任务和具有结束日期的任务。

0 投票
4 回答
437 浏览

scripting - awk 脚本帮助 - 逻辑问题

我目前正在编写一个简单的 .sh 脚本来解析 Exim 日志文件中匹配“o”的字符串。目前,在查看 output.txt 时,每行(606 行)上都打印一个 0。我猜我的逻辑是错误的,因为 awk 不会抛出任何错误。

这是我的代码(针对连接和计数器问题进行了更新)。编辑:我已经从 dmckee 的答案中采用了一些新代码,我现在正在使用旧代码来支持简单性。

有任何想法吗?

编辑:为了清楚起见,我在电子邮件地址中使用“o”,因为 ' 是电子邮件地址中的非法字符(在我们的数据库中,仅以 o' 为前缀的名称出现)。

编辑 2:根据评论请求,这里是一些所需输出的经过消毒的样本:

我在循环中从 20 开始的原因是因为第 20 个字段之前的所有内容都只是标准日志信息,我在这里不需要这些信息。我所需要的只是该解决方案的 IP 及其他所有内容(每个 550 错误的消息对于每个正在使用的邮件服务器都不同。我正在编译一个常见的列表)

0 投票
6 回答
253 浏览

time - 状态和时间穿越逻辑和程序流程?

想知道使用一些参考键索引应用程序的每个可能状态是否有用......

意思是,假设我们有一个启动的程序,只有这么多可能的结果,比如 8。

但是如果每个结果都是通过更多的逻辑状态来获得的,并且在每个分支之间被认为是一个状态并映射到一个键。

在大型程序中可能会占用大量内存,但如果我们可以直接访问密钥(密钥可以基于时间或逻辑深度),那么我们可以立即遍历任何可能的情况,而无需启动整个过程再次使用新数据。

可以把它想象成一棵树,其中没有子节点的节点是最终结果,节点与其父节点或子节点之间的每个分支都是一个“状态”,每个分支都有不同的键控。因此,虽然只有 8 个叶子,或者该过程的最终结果,但可能存在许多“状态”,具体取决于逻辑在没有子节点之前沿着树向下走的深度。

也许用于模拟,但这需要大量内存。

0 投票
6 回答
242 浏览

sql - Select Poorly Used Start and End Dates From Facility Table

I'm using DB2, although a solution using any flavor of SQL would likely be easy enough for me to convert.

I didn't design this database, or the application that uses the database. I haven't the power to change this application, how it works, or the data. Because it defies what I consider to be conventional use of a start and an end date, I am struggling with writing something as simple as a select for a specific point in time.

Here are the relevant/edited parts of the table:

What I want to return, are the records which are valid for 7/1/2005:

I'm trying to avoid subselects, but understand they may be necessary. If I do need a subselect, I'd like to keep it limited to one. Looking between the start and end date doesn't work, because it doesn't return facilities which have only one record with a null end date. Adding an OR condition to include end dates which are null may return more than one record in some cases. This problem seems so simple on the service, that I must be missing a ridiculously obvious solution. Does anyone have any ideas?

0 投票
15 回答
49418 浏览

c# - 在 .NET 中寻找简单的规则引擎库

有谁知道一个好的 .NET 库规则库(最好是开源的)?我需要一些可以做嵌套逻辑表达式的东西,例如,(A AND B) AND (B OR C OR D)。我需要比较对象属性,例如 A.P1 和 B.P1。(理想情况下,我可以比较任何属性——A.P1 和 B.P2)。

它应该将规则存储在数据库中(我有很多简单的可配置逻辑)。它应该有一个规则创建/管理 API。管理工具必须检查实例以确定哪些属性可用以及存在哪些约束。

谢谢!


哦,还有一件事。作为规则引擎,我需要包含操作(命令)的概念。这些是表达式返回时执行的内容:

所以我认为一个规则是这样的: