Tag: 逻辑

C ++面试准备

接下来我要和一家在金融软件行业工作的公司进行电话面试。 面试主要是用C ++来解决问题和逻辑。 请告诉我这次面试的准备方法。 我已经开始通过C ++思维进行浏览,并理解概念。 有没有其他办法可以准备? 请帮忙。 编辑: 谢谢大家的build议。 我只想补充一点,我目前刚刚gradle,没有以前的经验。 所以你能提出一些问题,将要求新的gradle生?

Djinn如何工作?

好的,所以我意识到我可能会对我的余生感到遗憾,但是… Djinn是如何工作的? 该文件说,它使用的algorithm是“LJ的延伸”,并指出关于LJT的长时间混淆的论文。 尽我所知,这是一个非常复杂的高度规则化的系统,用于确定哪些逻辑陈述是真实的还是错误的。 但是,这甚至不能解释如何将types签名转换为可执行expression式。 大概所有复杂的forms推理都是以某种方式参与的 ,但是画面是非常不完整的。 这有点像我试图在BASIC中编写一个Pascal解释器的时候。 (不要笑,我只有十二岁…)我花了好几个小时想弄明白,最后我不得不放弃。 我只是无法弄清楚,从一个包含整个程序的巨型string中得到的东西,到可以与已知程序片段进行比较的东西,以便决定实际执行的内容。 答案当然是你需要写一个叫“parsing器”的东西。 一旦你理解了这是什么以及它做了什么,突然一切都变得明显了 。 哦,编码它仍然不是微不足道的,但这个想法很简单。 你只需要写实际的代码。 如果我十二岁的时候我就知道parsing器,那么也许我不会花两个小时盯着一个空白的屏幕。 我怀疑Djinn在做什么从根本上是简单的,但我错过了一些重要的细节,解释了所有这些复杂的逻辑体操如何与Haskell源代码相关…

为什么IQueryable.All()在空集合上返回true?

所以今天遇到了一些情况,一些生产代码不能正确地执行,因为一个方法完全按照MSDN的规定执行 。 因为我没有阅读文档而感到羞耻。 然而,即使“devise上”,我仍然在为自己的行为而挠头,因为这种行为与我期望的(和其他已知的行为)完全相反,因此似乎违反了原则最less的惊喜。 All()方法允许您提供谓词(如lambdaexpression式)来testingIQueryable ,并返回一个布尔值,指示所有集合成员是否匹配testing。 到现在为止还挺好。 这是奇怪的地方。 如果集合是空的, All()也返回true 。 这似乎完全倒退给我,原因如下: 如果这个集合是空的,像这样的testing最好是未定义的。 如果我的车道是空的,我不能断言所有停在那里的车都是红色的。 有了这个行为,在一个空的车道上,所有停在那里的车都是红色的,蓝色的和棋盘格 – 所有这些expression式都会返回true。 对于熟悉SQL!的人来说,NULL!= NULL,这是意料之外的行为。 Any()方法的行为与预期相同,并且(正确)返回false,因为它没有任何与谓词相匹配的成员。 所以我的问题是,为什么All()这样做? 它解决了什么问题? 这是否违反了最小惊喜的原则? 我把这个问题标记为.NET 3.5,但是这个行为也适用于.NET 4.0。 编辑好的,所以我把握这个逻辑层面,就像杰森和你其他人一样。 诚然,一个空的收集是一个边缘的情况下。 我想我的问题是根植于这样一种斗争,即只是因为某些东西是合乎逻辑的 ,并不意味着如果你不在正确的思维范围内,这是有道理的。

5个sorting数组的中值

我试图find5个sorting数组的中位数的解决scheme。 这是一个面试问题。 我能想到的解决scheme是合并5个数组,然后find中位数[O(1 + m + n + o + p)]。 我知道,对于2个相同大小的sorting数组,我们可以在log(2n)中完成。 [通过比较两个数组的中位数,然后抛出每个数组的一半并重复该过程]。 寻找中位数可以是在sorting数组中的常量时间..所以我认为这不是log(n)? ..这是什么时间的复杂性? 1]是否有一个类似的解决scheme5arrays。 如果arrays的大小相同,那么是否有更好的解决scheme呢? 2]我假设,因为这是要求5,会有一些解决scheme的Nsorting数组? 感谢任何指针。 我向面试官提出了一些澄清/问题: 是相同长度的数组 =>没有 我想在数组的值会有重叠 =>是的 作为一个练习,我认为2数组的逻辑不扩展。 这里是一个尝试: 应用上面的2个数组的逻辑来说3个数组:[3,7,9] [4,8,15] [2,3,9] …中值7,8,3 投掷元素[3,7,9] [4,8] [3,9] ..中值7,6,6 投掷元素[3,7] [8] [9] ..中型5,8,9 … 投掷元素[7] [8] [9] ..中位数= 8 …这似乎不正确? sorting元素的合并=> [2,3,4,7,8,9,15] =>预期中值= 7

什么是模糊逻辑?

我在学校使用了几个AIalgorithm,我发现人们使用Fuzzy Logic这个词来解释他们可以解决的情况。 当我回到书籍上时,我只是读了一下,而不是一个从“开”到“关”的状态,这是一条对angular线,在两个状态中,可以是不同的“等级”。 我已阅读维基百科条目和几个教程,甚至编程的东西,“使用模糊逻辑”(边缘检测器和单轮自控机器人),我仍然发现从理论到代码非常混乱。对你来说,在较不复杂的定义中,什么是模糊逻辑?

查找O(n)中列出所有成员的最大间隔

我在接受采访时被问到了这个问题。 给定一个整数列表,我们如何find给定列表中所有成员的最大间隔? 例如,给出列表1,3,5,7,4,6​​,10然后回答将是[3,7]。 因为它具有3到7之间的所有元素。 我试图回答,但我没有说服力。 我采取的方法是首先sorting列表,然后检查它的最大间隔。 但是我被要求在O(n)这样做 。

咖喱霍华德同构

我已经在互联网上search了一遍,我也找不到任何关于“气”的解释,这些解释并没有迅速退化成一个逻辑理论的演讲,而这个逻辑理论在我的脑海中已经大打折扣了。 (这些人认为“直觉主义演算”是一个实际上对于正常人来说意味着什么的短语!) 粗略地说,CHI说types是定理,程序是这些定理的certificate。 但是这到底意味着什么呢? 到目前为止,我已经明白了这一点: 考虑一下id :: x -> x 。 其types表示“鉴于X是真实的,我们可以得出结论X是真实的”。 对我来说似乎是一个合理的定理。 现在考虑foo :: x -> y 。 正如任何Haskell程序员会告诉你的,这是不可能的。 你不能写这个函数。 (好吧,无论如何都不要作弊。)读作为一个定理,它说“假设任何X是真的,我们可以得出结论,任何Y是真的”。 这显然是无稽之谈。 而且,果然,你不能写这个function。 更一般地说,函数的论点可以被认为是“被假定为真的”,结果types可以被认为是“假设所有其他事物都是真的”。 如果有一个函数论证,比如说x -> y ,那么我们可以把这个假设看作X是真的,这意味着Y必须是真的。 例如, (.) :: (y -> z) -> (x -> y) -> x -> z可以被认为是“假设Y意味着Z,X意味着Y,并且X是真实的,我们可以得出结论Z是真的“。 这对我来说似乎是合情合理的。 现在,究竟是什么Int -> Int意思是? O_O 我可以想到的唯一明智的答案是:如果你有一个函数X – > Y – > Z,那么types签名表示“假设可以构造一个Xtypes的值,另一个types为Y,那么有可能构造一个Z型的值“。 […]

在Java中,什么是布尔操作顺序?

我们来看一个对象Cat的简单例子。 我想确定“不是零” cat是橙色还是灰色。 if(cat != null && cat.getColor() == "orange" || cat.getColor() == "grey") { //do stuff } 我相信和先来,然后是OR。 我有点模糊,所以这是我的问题: 有人可以通过这个陈述走我,所以我敢肯定,我会得到什么发生? 另外,如果我添加括号会发生什么; 这是否改变了操作的顺序? 我的操作顺序是否会从语言变为语言?

为什么JavaScript在if语句中接受逗号?

我偶然发现了一些JavaScript语法,它似乎应该会产生某种types的parsing错误,但是不会: if (true, true) {console.log('splendid')} else {console.log('horrid')} // splendid if (true, false) {console.log('splendid')} else {console.log('horrid')} // horrid 似乎只有最后一个expression式影响逻辑,尽pipe所有expression式都被执行: if (console.log('super'), true) {console.log('splendid')} // super splendid 任何人都知道为什么这是有效的JavaScript语法? 有没有实际的用途呢?

JQuery .hasClass用于if语句中的多个值

我有一个简单的if语句: if ($('html').hasClass('m320')) { // do stuff } 这按预期工作。 但是,我想添加更多的类到if statement来检查是否存在任何类在<html>标记。 我需要它,所以它不是所有的人,但至less有一个类的存在,但它可以更多。 我的用例是,我有类(例如m320 , m768 )为各种视口宽度添加,所以我只想执行某些Jquery,如果它是一个特定的宽度(类)。 这是我迄今为止所尝试的: 1。 if ($('html').hasClass('m320', 'm768')) { // do stuff } 2。 if ($('html').hasClass('m320')) || ($('html').hasClass('m768')) { // do stuff } 3。 if ($('html').hasClass(['m320', 'm768'])) { // do stuff } 这些似乎没有工作。 不知道我在做什么错,但很可能是我的语法或结构。