我正在学校使用几种AI算法,我发现人们使用模糊逻辑来解释他们可以用几种情况解决的任何情况.当我回到书本时,我刚刚读到关于如何取而代之的状态从On到Off它是一条对角线,有些东西可以在两种状态但在不同的"级别".
我已经阅读了维基百科条目和一些教程,甚至编写了"使用模糊逻辑"(边缘检测器和单轮自控机器人)的东西,但我仍然觉得从理论到代码非常混乱.对于你来说,在不太复杂的定义中,什么是模糊逻辑?
我试图找到5个排序数组的中位数的解决方案.这是一个面试问题.
我能想到的解决方案是合并5个数组,然后找到中位数[O(l + m + n + o + p)].
我知道对于2个相同大小的排序数组,我们可以在log(2n)中完成.[通过比较两个阵列的中位数,然后丢弃每个阵列的一半并重复该过程]...查找中位数可以是排序数组中的常量时间..所以我认为这不是log(n)?..这个时间复杂度是多少?
1] 5个阵列是否有类似的解决方案.如果阵列大小相同,那么有更好的解决方案吗?
2]我假设因为要求5,N排序数组会有一些解决方案吗?
谢谢你的任何指示.
我向采访者回答的一些澄清/问题:
长度相同的数组
=>不,
我猜数组的值会有重叠
=>是
作为练习,我认为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] ..medians 5,8,9 ...
投掷元素[7] [8] [9] ..中位数= 8 ......这似乎不正确吗?
排序元素的合并=> [2,3,4,7,8,9,15] =>预期中位数= 7
给定是一个包含三个数值的数组,我想知道这三个数值的中间值.
问题是,找到三者中间的最快方法是什么?
我的方法是这种模式 - 因为有三个数字有六种排列:
if (array[randomIndexA] >= array[randomIndexB] &&
array[randomIndexB] >= array[randomIndexC])
Run Code Online (Sandbox Code Playgroud)
如果有人可以帮助我找到更优雅,更快捷的方法,那将是非常好的.
好的,所以我意识到我可能会在余生中后悔,但...... Djinn实际上是如何工作的?
文档说它使用的算法是"LJ的扩展",并指出了一篇关于LJT的长篇令人困惑的论文.就我所知,这是一个非常复杂的高度形式化规则系统,用于确定哪些逻辑陈述是真是假.但是,这甚至没有开始解释如何将类型签名转换为可执行表达式.据推测,所有复杂的形式推理都是以某种方式涉及的,但这种情况至关重要.
这有点像我在BASIC写一个Pascal解释器的时候.(不要笑!我只有十二岁......)我花了好几个小时试图解决它,最后我不得不放弃.我只是无法弄清楚你是如何从包含整个程序的巨型字符串中得到的,以及你可以与已知程序片段进行比较以确定实际操作的内容.
答案当然是你需要写一个叫做"解析器"的东西.一旦你理解了它是什么以及它做了什么,突然一切都变得明显.哦,编码它仍然不是一件容易的事,但这个想法很简单.你只需要编写实际的代码.如果我在十二岁时就知道解析器,那么也许我不会花两个小时只是盯着一个空白的屏幕.
我怀疑Djinn正在做的事情从根本上说很简单,但我遗漏了一些重要的细节,这些细节解释了所有这些复杂的逻辑体操如何与Haskell源代码相关...
我在接受采访时被问到这个问题.给定一个整数列表,我们如何找到给定列表中所有成员的最大间隔?
例如,给出列表1,3,5,7,4,6,10然后回答是[3,7].因为它具有3到7之间的所有元素.
我试着回答,但我没有说服力.我采取的方法是先对列表进行排序,然后检查最大间隔.但我被要求这样做O(n).
我接下来将与一家在金融软件行业工作的公司接受电话采访.面试主要是用C++,解决问题和逻辑.请告诉我这次面试的准备方法.我已经开始浏览C++中的Thinking并刷新概念.还有其他方法可以准备吗?请帮忙.
编辑:
谢谢大家的建议.我只是想补充一点,我目前刚从研究生院毕业,没有以前的经验.所以,你能否提出一些问题,要求新毕业生?
程序需要读取三个坐标的值
以及另一个坐标P(x,y)并确定该点是否在由上述3点形成的三角形内.
我知道and和or表达式存在于python中,但有任何and/or表达式吗?或者某种方式将它们组合起来以产生与and/or表达式相同的效果?
我的代码看起来像这样:
if input=="a":
if "a" or "á" or "à" or "ã" or "â" in someList:
someList.remove("a") or someList.remove("á") or someList.remove("à") or someList.remove("ã") or someList.remove("â")
Run Code Online (Sandbox Code Playgroud)
有了这个,我的意思是如果用户输入"a"并且先前定义的列表中包含任何类型的"a",我可以从给定列表中删除所有类型的"a"吗?
python告诉我有一个问题:
someList.remove("a") or someList.remove("á") or someList.remove("à") or someList.remove("ã") or someList.remove("â")
Run Code Online (Sandbox Code Playgroud)
他告诉我: ValueError: list.remove(x): x not in list
可能重复:
在Python中实现'枚举'的最佳方法是什么?
我正在编写一个函数,理想情况下,我想返回三种状态之一:"是","否"和"不知道".
任何编程语言的类型都有三种,只有三种状态吗?像布尔值,但有三个状态而不是两个?
在没有这种类型的语言(如Python)中,表示这种类型的最佳类型是什么?
目前我认为我将使用整数(0"不",1"不知道"和2"是"),但也许有更好的方法?整数似乎有点"神奇的数字".
我可以回来True,False或者None,正如在大多数比较环境中None评估的那样False,错误似乎有点成熟.
logic ×10
algorithm ×3
python ×3
arrays ×1
boolean ×1
c++ ×1
conditional ×1
definition ×1
fuzzy-logic ×1
haskell ×1
hint ×1
java ×1
math ×1
median ×1
operators ×1
python-2.x ×1
theory ×1
types ×1