小编ben*_*ndl的帖子

删除Prolog中列表中的前导零

我有一个列表,在它的开头有一个未知数量的零,例如[0,0,0,1,2,0,3].我需要将这个列表去掉前导零,以便它看起来像[1,2,0,3].

这就是我所拥有的:

lead([Head | _], _) :- Head =\= 0.
lead([0 | Tail], _) :- 
  lead(Tail, Tail).
Run Code Online (Sandbox Code Playgroud)

其输出只是True.读取跟踪显示它正在运行,直到它有一个没有前导零的列表,但随后答案不会传播回堆栈.我对Prolog很新,所以我无法弄清楚如何做到这一点.

list prolog prolog-dif

13
推荐指数
4
解决办法
535
查看次数

熊猫open_excel()失败,出现xlrd.biffh.XLRDError:在OLE2复合文档中找不到工作簿

我正在尝试使用熊猫解析.xlsm文档。我的代码与给出的示例文件完美配合,但是一旦获得了其余文档,它就会因上述错误而失败。这是令人讨厌的堆栈跟踪:

Traceback (most recent call last):
  File "@@@@@@@@/UnsupervisedCAM.py", line 9, in <module>
    info_dict = read_excel_to_dict('files/' + filename)
  File "@@@@@@@@\readCAM.py", line 7, in read_excel_to_dict
    df = pandas.read_excel(filename, parse_cols='E,G,I,K,Q,O')
  File "@@@@@@@@\Anaconda3\envs\tensorflow\lib\site-packages\pandas\io\excel.py", line 191, in read_excel
    io = ExcelFile(io, engine=engine)
  File "@@@@@@@@\Anaconda3\envs\tensorflow\lib\site-packages\pandas\io\excel.py", line 249, in __init__
    self.book = xlrd.open_workbook(io)
  File "@@@@@@@@\Anaconda3\envs\tensorflow\lib\site-packages\xlrd\__init__.py", line 441, in open_workbook
    ragged_rows=ragged_rows,
  File "@@@@@@@@\Anaconda3\envs\tensorflow\lib\site-packages\xlrd\book.py", line 87, in open_workbook_xls
    ragged_rows=ragged_rows,
  File "@@@@@@@@\Anaconda3\envs\tensorflow\lib\site-packages\xlrd\book.py", line 595, in biff2_8_load
    raise XLRDError("Can't find workbook in OLE2 compound document")
xlrd.biffh.XLRDError: Can't find workbook in OLE2 …
Run Code Online (Sandbox Code Playgroud)

python pandas xlsm

5
推荐指数
2
解决办法
3438
查看次数

有没有更有效的方法来查找最常见的n-gram?

我正在尝试从一个大型语料库中找到k个最常见的n-gram。我见过很多地方都建议采用朴素的方法-仅扫描整个语料库并保留所有n-gram计数的字典。有一个更好的方法吗?

algorithm nlp n-gram

3
推荐指数
1
解决办法
3857
查看次数

标准做法是在该类中创建一个类的实例吗?

我在类Foo中遇到了一些代码doSomething()的代码,它创建了类foo的实例.

public class Foo {
    public void doSomething() {
         Foo foo1 = new Foo();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是标准做法吗?这似乎是一种非常奇怪的事情.你为什么要做这样的事情.以这种方式创建代码是否存在危险?有没有理由你想要这样做而不是使用其他一些做法?最后,我的直觉是任何做这种事情的方法都应该被声明为静态的.那是对的吗?

java class instantiation

2
推荐指数
1
解决办法
49
查看次数

没有else的scala if语句的返回类型是什么

我在一些Scala代码中犯了类似下面的错误:

val someVal:String = if (someX == someY) n
Run Code Online (Sandbox Code Playgroud)

回想起来,错误对我来说很明显(它必须为someVal分配一些东西,如果表达式为false,它可能不会是一个字符串).我想知道如果表达式为false,返回的值是什么.我最好的猜测是单位,或者也许是AnyVal.

types scala

2
推荐指数
1
解决办法
1690
查看次数

使用Prolog计算多项式的GCD

标题类似于说明了一切.我想要计算两个多项式的GCD.有什么办法可以在Prolog中完成吗?如果是这样,有什么好的起点?具体来说,我在如何使用Prolog实现多项式除法方面遇到了麻烦.

编辑以包含示例输入和输出:

输入示例:

?-  GCD(x^2 + 7x + 6, x2 ? 5x ? 6, X).
Run Code Online (Sandbox Code Playgroud)

示例输出:

X = x + 1.
Run Code Online (Sandbox Code Playgroud)

关于其他人需要这样做的机会,这是我的最终解决方案:

tail([_|Tail], Tail).
head([Head | _], Head).

norm(Old, N, New) :- 
    length(Tail, N),
    append(New, Tail, Old).
norm(Old, N, []) :-
    length(Old, L),
    N > L.

mult_GCD(List, GCD) :- length(List, L),
    L > 2, tail(List, Tail),
    mult_GCD(Tail, GCD).
mult_GCD([H | T], GCD) :-
    length(T, L),
    L == 1, head(T, N),
    gcd(H, N, GCD).

lead(List, List) :-
    length(List, L),
    L …
Run Code Online (Sandbox Code Playgroud)

prolog polynomial-math greatest-common-divisor

1
推荐指数
1
解决办法
475
查看次数

如何在Firebase安全规则中使用auth.phoneNumber?

如何auth.phoneNumber在Firebase安全规则中使用,例如 auth.phoneNumber == newDatat.phoneNumberauth.provider == phoneNumber

firebase firebase-security firebase-authentication firebase-realtime-database

0
推荐指数
1
解决办法
310
查看次数