问题标签 [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 投票
15 回答
26844 浏览

language-agnostic - 以编程方式解决“谁拥有斑马”?

编辑:这个谜题也被称为“爱因斯坦之谜”

谁拥有 Zebra(您可以在此处尝试在线版本)是一组经典难题的示例,我敢打赌 Stack Overflow 上的大多数人都可以用笔和纸解决它。但是程序化解决方案会是什么样子?

根据下面列出的线索...

  • 有五间房子。
  • 每个房子都有自己独特的颜色。
  • 所有房主都是不同国籍的。
  • 他们都有不同的宠物。
  • 他们都喝不同的饮料。
  • 他们都抽不同的香烟。
  • 英国人住在红房子里。
  • 瑞典人有一条狗。
  • 丹麦人喝茶。
  • 绿房子在白房子的左边。
  • 他们在温室里喝咖啡。
  • 抽 Pall Mall 的人有鸟。
  • 在黄色的房子里,他们抽登喜路。
  • 在中间房子里,他们喝牛奶。
  • 挪威人住在第一间房子里。
  • 抽 Blend 的男人和猫一起住在房子旁边的房子里。
  • 在他们有一匹马的房子旁边的房子里,他们抽登喜路。
  • 抽蓝大师的人喝啤酒。
  • 德国人抽王子烟。
  • 挪威人住在蓝屋旁边。
  • 他们在抽Blend的房子旁边的房子里喝水。

...谁拥有斑马?

0 投票
3 回答
375 浏览

.net - 指定重复作业或任务的执行时间的最佳方法是什么?

我正在寻找一种有效指定重复作业执行时间的方法,而无需将显式执行时间写入数据存储。换句话说,与其说“作业 x 下一个在 11.12.08 下午 13:00 运行”,然后必须在作业运行后更新下一周的执行时间,我希望能够说“作业 x 在每个星期四下午 13 点”。我需要能够指定从几分钟到每月一次的任何重复范围。我的猜测是复发期越短,这就越困难。有任何想法吗?

注意:我不是在寻找有关调度机制的建议。我无法使用 Windows 调度程序、Cron 或创建 Windows 服务(我别无选择,只能在 ASP.NET 中使用后台线程)。

0 投票
3 回答
2100 浏览

php - PHP 中的网络爬虫链接/页面逻辑

我正在编写一个基本的爬虫,它只是用 PHP 缓存页面。

它所做的只是get_file_contents用来获取网页的内容和正则表达式来获取所有链接<a href="URL">DESCRIPTION</a>- 在它返回的那一刻:

我遇到的问题是弄清楚确定页面链接是否是本地的或是否可能位于完全不同的本地目录中的逻辑。

它可以是任意数量的组合:即href="../folder/folder2/blah/page.html"href="google.com"href="page.html"- 可能性是无穷无尽的。

解决这个问题的正确算法是什么?我不想丢失任何可能很重要的数据。

0 投票
11 回答
14115 浏览

artificial-intelligence - 什么是模糊逻辑?

我在学校使用了几种人工智能算法,我发现人们使用模糊逻辑这个词来解释他们可以通过几个案例解决的任何情况。当我回到书上时,我刚刚读到关于如何而不是从开到关的状态,它是一条对角线,并且某些东西可以同时处于两种状态但处于不同的“级别”。

我已经阅读了维基百科条目和一些教程,甚至是“使用模糊逻辑”的编程内容(边缘检测器和单轮自控机器人),但我仍然觉得从理论到代码非常混乱。 . 对你来说,在不太复杂的定义中,什么是模糊逻辑?

0 投票
2 回答
366 浏览

php - 使用 API/Function 调用或采用 Cron Job 方法 - 处理事务的调查 - 你将如何处理它?

我正在使用 PHP 和 MySQL 开始一个新项目,大致如下:

每分钟我都会从不同用户的 API 中获得一份待办事项列表。

例子:

假设 user1 想向 user2 发送 $1。有两种可能,成功或不成功,因为资金不足或用户拼写错误的用户名。如果不成功,我会向用户发送一条消息。

我现在面临几个选择:

选项1

创建一个包含需要处理的事务的数据库表,并使用每分钟处理一次的 cronjob。这里的风险是脚本可能会因错误或超时而运行,而其他事务仍会在数据库表中显示 In Progress。所以我需要第二个脚本来检查时间戳。

选项 2

创建一个 API 或函数,在我收到它们并给我一个响应后,它会为每个事务调用。然后我可以调用另一个 API 或函数来处理该响应或继续下一个事务。但是,我仍然必须将它们放在数据库表中,因为如果脚本停止执行,我不能冒险丢失它们。所以它的工作原理如下:将所有事务放在数据库表中 - 开始事务 - 完成事务后从表中删除 - 开始事务 2。


这两个选项都有缺陷,因为您不知道交易列表会有多长。如果它很长,PHP 绝对不是长时间运行的最佳选择 - 使用将超时设置为零是有风险的。我正在寻找一个可以与 PHP 一起扩展的解决方案。所以我在考虑选项3。


选项 3(最佳解决方案?)

使用 API 返回 10 个事务。

在数据库中设置一个标志来说明它们被发送到一个脚本和时间戳来说明它们何时被发送

PHP 脚本从 API 检索 10 个事务 - 处理 10 个事务。

一旦事务完成 - 从该表中删除它并将其复制到已完成的事务表中。

如果发送时间大于 X 分钟(基于 10 个事务的执行时间的上限),则每 3 分钟检查一次 cronjob 脚本。如果它更大 - 将它们设置为不发送 - 这样它们就可以再次发送出去。


正如你所看到的,我写下了我对此的整个思考过程,并正在寻找输入。肯定有我错过的东西。另请注意,这些不是真正的金融交易——这只是我可以用来说明的最好的元数据。

0 投票
3 回答
634 浏览

php - PHP/RegEx - 预先表名的逻辑

因此,我正在尝试构建一个脚本,该脚本会自动在有效列名前面加上适当的表前缀(例如“t.”或“r.”)

输入:

输出:

注意你不能做一个正常的str_replace。什么是最简单的代码(我猜preg_replace)以确保所有表名都正确添加?

0 投票
10 回答
550 浏览

php - 逻辑运算符:AND 比 OR 更好吗?

对不起,如果这是一个 comp-sci 101 问题。我只是不确定我是否遗漏了一些明显的东西。

因此,假设某些用户输入引发了错误,我想抓住它并返回一些反馈。错误将是一个数字,0 - 8。0 表示“无错误”。如果错误为 3,我想给用户非常具体的反馈(比方说,不允许数字)。对于其他 7 种可能性,我只想结束脚本并回显错误。

我正在解决这个问题并决定这样做:

无论如何,然后我注意到第一行的 OR 运算符,并认为使用 AND 运算符可能会更好/更安全。但我思考得越多,我看到的差异就越小。

所以真正的问题是,如果你想消除特定变量的两种可能性,AND 和 OR 是否相同,或者在逻辑/功能上是否更优化?

0 投票
9 回答
8110 浏览

logic - 你如何帮助人们学习逻辑?

不是 IT 的人,更具体地说是程序员,没有解决问题的好方法。他们根本不像我们这些有良好逻辑的程序员那样思考。我被问过太多次了,我会推荐他们什么来改进他们的逻辑,这最终将有助于解决日常的专业问题。我想到的事情是很好的谜题,数学问题等。

话虽如此,你会推荐什么,为什么?书籍、网站、文章?

0 投票
1 回答
1779 浏览

logic - 您将如何在 Verilog 或 VHDL 中实现这种数字逻辑?

我发布了另一个 stackoverflow 问题的答案,该问题需要在 Verilog 或 VHDL 中实现一些数字逻辑,以便可以将其编程到 FPGA 中。

您将如何用 Verilog、VHDL 或任何其他硬件描述语言实现以下逻辑图?

编号的框表示字段中的位。每个字段都有K位,电流掩码的位将由计算机系统提供(使用锁存寄存器或等效物)。接下来的位将被读回同一计算机系统。

替代文字 http://img145.imageshack.us/img145/5125/bitshifterlogicdiagramkn7.jpg

另请参阅:this stackoverflow question

0 投票
2 回答
7129 浏览

math - 误解 MixColumns 步骤

我在理解此处描述的 MixColumns 步骤时遇到问题。

我知道扩散,这一切都是有道理的,它指出每一列都被视为多项式并在 GF(2^8) 上乘以模。

但是..乘以 GF(2^8)。尽管域仍然是相同的,但由于 mod.... 而它是不可逆的,它必须是可逆的,因为这就是它的全部意义所在。

就第一位而言,我的方法是将 A、B、C 和 D 作为列的 4 个字节,将 A1、A2、...、A8 作为位,将 E、F、G 和 H 作为输出字节。我要设置

因此它是可逆的、一对一的、线性的和分布的

它后来指出,它可以被视为矩阵乘法,但由于矩阵的元素必须是字节并以字节输出,因此矩阵的每个元素必须是模 256,因此不可逆和非线性。

我理解错了吗?我在数学上苦苦挣扎,并试图了解需要做什么,以便将其转换为逻辑。