问题标签 [theory]
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.
data-structures - 什么是 Zipper 数据结构,我应该使用它吗?
问题很简单:我无法理解Zipper数据结构。
我的问题与它与树的使用有关。
我想了解如何使用 zipper 更改树节点。以及如何不复制整个树(或大部分)。
请澄清我是否对拉链有误。也许它无法帮助更新树?
或者,也许,可以更新树而我只是看不到路?
theory - 为什么康威的生命游戏可以归类为万能机?
我最近在阅读关于人工生命的文章,偶然发现了这样的说法,“康威的生命游戏展示了足够的复杂性,可以被归类为通用机器。” 我对什么是通用机器只有一个粗略的了解,而维基百科只是让我与维基百科一样接近理解。我想知道是否有人可以对这个非常性感的声明有所了解?
对我来说,康威的生命游戏似乎是一种可爱的消遣,具有一些巨大的影响:我无法在它和计算器之间进行跳跃?这甚至是我应该做出的飞跃吗?
c# - 自定义 HTML 帮助程序类是否违反 ASP.NET MVC 模型?
在一篇相关文章中,我提到我发现自定义 HTML 助手在开发时非常有用。例如,当我需要为“网格”分页时,我有一个可以调用的自定义助手Html.Pager()
。
有些人指出 HTML 助手违反了 MVC 模型。就个人而言,我认为它与现有的助手没有任何不同,例如Html.Textbox()
or Html.ActionLink()
。
我仍在尝试了解有关 MVC 的更多信息,因此所有观点都值得赞赏。
artificial-intelligence - 什么是模糊逻辑?
我在学校使用了几种人工智能算法,我发现人们使用模糊逻辑这个词来解释他们可以通过几个案例解决的任何情况。当我回到书上时,我刚刚读到关于如何而不是从开到关的状态,它是一条对角线,并且某些东西可以同时处于两种状态但处于不同的“级别”。
我已经阅读了维基百科条目和一些教程,甚至是“使用模糊逻辑”的编程内容(边缘检测器和单轮自控机器人),但我仍然觉得从理论到代码非常混乱。 . 对你来说,在不太复杂的定义中,什么是模糊逻辑?
merge - 合并分支实际上是如何工作的(在引擎盖下)?
这可能是一个幼稚的问题,但是,正如对象中所问的那样,版本控制软件将分支合并回主干而不生成损坏代码的实际方法是什么?
这是一个简单的例子:我从主干中为程序“Hello World Power edition”创建了一个分支。我添加了对克林贡语的支持。这是一个彻底的改变,改变了函数 printHelloWorld() 的工作方式。
同时,由于错误 #749 导致“Hello World”被写成“Helo World”,主干中的函数 printHelloWorld() 已更改。
现在,我在这里看到的问题是:当我通过分支合并回主干时,我在 sayHello.py 文件中的函数 printHelloWorld() 中试验了一个冲突
VCS 程序如何知道如何从我的分支添加克林贡语支持并将错误修复保留在主干中?避免这种情况的人为驱动或软件驱动的策略是什么?
提前致谢。
theory - 如何编程分形?
我没有任何编程分形的经验。当然,我看过著名的 Mandelbrot 图像等。
你能给我提供分形的简单算法吗?
编程语言真的无所谓,但我最熟悉actionscript、C#、Java。
我知道如果我在谷歌上搜索分形,我会得到很多(复杂的)信息,但我想从一个简单的算法开始并使用它。
也欢迎提出改进基本算法的建议,比如如何将它们制作成可爱的颜色等。
algorithm - “等候名单问题”
一些学生想进入一个班级的部分,有些学生已经注册了一个部分但想改变部分,所以他们都进入了候补名单。只有当有人从该部分掉线时,学生才能进入新部分。没有学生愿意放弃他们已经在的部分,除非可以确保进入他们正在等待的部分。每个部分的等候名单是先到先得。
让尽可能多的学生进入他们想要的部分。
上述问题可能很快演变为僵局。我的问题是;这个问题有已知的解决方案吗?
一个简单的解决方案是依次选择每个部分并强制等待列表中的第一个学生进入该部分,然后检查当事情解决时是否有人最终退出(部分数量为 O(n) 或更多)。这在某些情况下可行,但我认为可能有更好的选择,包括强制一个以上的学生进入一个部分(O(n) 或更多学生数量)和/或一次操作多个部分(O (坏的) :-)
image-processing - 我从哪里开始学习图像处理和对象识别?
我有兴趣编写一些基本的计算机化对象识别应用程序,因此我认为我需要一些图像处理算法的理论背景,以及一些用于决策能力的 AI。
我是一名计算机科学专业的毕业生,有一天我计划获得硕士学位,希望在这些领域之一。同时,我想抢先一步,做一些自学。
所以我的问题是,我从哪里开始?如果可能的话,我会很感激一个正确方向的箭头,一些链接。
theory - 是否有用于数据库查询的规范形式?
假设我想做一个“优化的查询生成器”。基本上是一个 SQL 查询优化器,它比基于时间/空间限制的 SQL 服务器中的优化器要好得多。它将查询和数据库统计信息作为输入,并生成为目标系统量身定制的 SQL 查询,该查询将快速优化为几乎理想的计划。
需要支持多少 SQL?是否有一个 SQL 子集足够灵活,可以轻松描述最有用的查询,但又比完整的 SQL 小,值得将其缩减为?如果您不需要坚持“靠近机器”,还有更好的方法来描述查询吗?
我不是在考虑一个程序来处理现有的 SQL,而是一个用于创建新 SQL 的工具。只要输入语言能够描述查询的要求,实际上不需要将SQL 作为输入。
我想问题的另一种形式是:它们的 SQL 的任何部分是否仅用于性能并且从不提高可读性/可理解性?
正如有人指出的那样,这样做需要“大量特定于产品的知识”,并且(例如嵌套子查询与其他任何东西,应该使用什么样的索引,诸如此类)正是该工具旨在封装的内容这样用户就不需要学习这些知识。
注意:我对生成实际的查询计划不感兴趣,因为那是 DBMS 的工作,无论如何都不能从 SQL 中完成。我对一个系统感兴趣,该系统可以从不需要为该 DBMS 调整的输入中自动为给定 DBMS 生成良好的 SQL 的工作。
parsing - Chomsky 层次结构和 LL(*) 解析器
我想解析一种编程语言。我阅读了很多关于形式语言、乔姆斯基层次结构和 ANTLR 的内容。但是我找不到有关如何将 ANTLR v3 语言作为 LL(*) 递归下降解析器接受到 chomsky 层次结构的信息。
Chomsky 类型如何与 LL(*) 混合?非常感谢任何信息(在线、书籍、论文)。
编辑:ANTLR 的句法/语义谓词和回溯如何映射到这个?