我从来没有在任何网页上看到Computer Modern字体,这是LaTeX类型设置系统的默认字体.
如何更改CSS以使字体实际工作?
给出飞机上的n个点.No 3是共线的.
给定数k.
找到k个点的子集,使得k个点的凸包具有k个点的子集的任何凸包的最小周长.
我可以想到一个天真的方法在O(n ^ kk log k)中运行.(找到大小为k的每个子集的凸包并输出最小值).
我认为这是一个NP问题,但我找不到任何适合减少的东西.
有人对这个问题有什么想法?
一个例子,
the set of n=4 points {(0,0), (0,1), (1,0), (2,2)} and k=3
Run Code Online (Sandbox Code Playgroud)
结果:
{(0,0),(0,1),(1,0)}
Run Code Online (Sandbox Code Playgroud)
由于该组包含3个点,因此结果的凸包和周长小于任何其他3个点的周长.
我正在写一个减少自由词的函数.可以将其视为以下算法:
想法是取消列表中的项目,如果它们彼此为负并且彼此相邻.反复应用,直到无法取消.例如[-2,1,-1,2,3] - > [ - 2,2,3] - > [3]
我写了以下代码.它看起来并不优雅.它使用了head,tail多次,并且这个函数的输入共有3个模式,如果它可以减少到2就很好.我想知道是否有更优雅的方法在Haskell中编写它.我怀疑我可以使用折叠,但我不知道如何自然地做到这一点.
freeReduce [] = []
freeReduce [x] = [x]
freeReduce (x:xs)
| x == -(head xs) = freeReduce (tail xs)
| otherwise = if' (rest == [])
[x]
(if' (x == - (head rest)) (tail rest) (x:rest))
where rest = freeReduce xs
Run Code Online (Sandbox Code Playgroud) 根据定义,定点组合器并不总能产生正确的答案:
fix f = f (fix f)
Run Code Online (Sandbox Code Playgroud)
以下代码不会终止:
fix (\x->x*x) 0
Run Code Online (Sandbox Code Playgroud)
当然,fix不能总能产生正确的答案,但我很纳闷,这可以改进吗?
当然,对于上面的例子,可以实现一些看起来像的修复
fix f x | f x == f (f x) = f x
| otherwise = fix f (f x)
Run Code Online (Sandbox Code Playgroud)
并给出正确的输出.
是什么原因导致上面的定义(或更好的东西,因为这个只有1个参数的句柄功能)不被使用?
假设我有两个列表,一个是文本t,一个是字符列表c.我想计算每个字符出现在文本中的次数.
使用以下APL代码可以轻松完成此操作.
+?t?.=c
Run Code Online (Sandbox Code Playgroud)
但它很慢.它取外部产品,然后对每列进行求和.
这是一个O(nm)的算法,其中n和m是大小t和c.
当然我可以在APL中编写一个t逐字符读取的程序程序,并在O(n + m)中解决这个问题(假设完美哈希).
有没有办法在没有循环(或条件)的APL中更快地完成这项工作?我也接受J的解决方案.
编辑: 实际上,我这样做的地方是文本比字符列表短得多(字符是非ascii).我正在考虑文本的长度为20,字符列表的长度为数千.
如果n小于m,则有一个简单的优化.
w ? (?t)?c
f ? +?t?.=w
r ? (?c)?0
r[c?w] ? f
r
Run Code Online (Sandbox Code Playgroud)
w只包含t中的字符,因此表大小仅取决于t而不取决于c.该算法在O(n ^ 2 + m log m)下运行.其中m log m是进行交叉运算的时间.
但是,如果有人提供了大量的文本文件,则仍然优选使用次二次算法.
假设有一个数组,我们想要找到奇数索引中的所有内容(索引从0开始),并将其移动到最后.偶数索引中的所有内容都将其移至开头.保留所有奇数索引项和所有偶数索引项的相对顺序.
即如果阵列是
a1 b1 a2 b2 ... an bn
Run Code Online (Sandbox Code Playgroud)
手术后就变成了
a1 a2 a3 ... an b1 b2 ... bn
Run Code Online (Sandbox Code Playgroud)
这可以在O(n)时间内就地完成吗?
我在haskell中编写了以下函数,因为它将枚举每个整数:
integers = (0:)$ concat $ zipWith (\x y -> [x,y]) [1..] (map negate [1..])
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更好的方法来做到这一点,看起来确实有点过于复杂.
另外,我想知道是否有标准实现来列出维度$ k $的整数点阵中的所有元素.
什么是所需的最小原语集,以便语言是图灵完整的和lisp变体?
看起来像汽车,cdr和一些流量控制和REPL的东西就足够了.如果有这样的清单那就好了.
假设只有3种类型的数据,整数,符号和列表.(如在picolisp中)
给定字符串s,找到最短的字符串t,使得t ^ m = s.
例子:
s="aabbb" => t="aabbb"
s="abab" => t = "ab"
Run Code Online (Sandbox Code Playgroud)
它能以多快的速度完成?
当然天真地,对于每m个除| s |,我可以尝试子串(s,0,| s |/m)^ m = s.
可以在O(d(| s |)n)时间内找出解,其中d(x)是s的除数.可以更有效地完成吗?
如何在APL中定义普适函数?
我做的是
function?{
(??(????)){the function that apply to scalar}¨?
}
Run Code Online (Sandbox Code Playgroud)
我认为应该有一个更好的方法,我没有看到它.