小编the*_*may的帖子

DCG和Prolog中列表的反转

我试图在列表中计算反转的数量.谓词inversion(+L,-N)统一N了该列表中的反转次数.甲反转被定义为X > YX之前出现Y在列表中(除非XY0).例如:

?- inversions([1,2,3,4,0,5,6,7,8],N).
N = 0.

?- inversions([1,2,3,0,4,6,8,5,7],N).
N = 3.
Run Code Online (Sandbox Code Playgroud)

对于我正在使用的内容,列表将始终包含9个元素,并且始终包含0-8唯一的数字.

我对Prolog很新,我试图尽可能简洁,优雅; 似乎DCG可能会有很大帮助.我读了官方定义和一些教程网站,但仍然没有放弃了解它是什么.任何帮助将不胜感激.

list prolog clpfd

13
推荐指数
2
解决办法
448
查看次数

如何在O(n)时间内计算0,1,2,...,n中设置的1位数?

这是一个面试问题.原始问题问:

给定正整数N,计算从0到N的每个整数中的1的数量,并以大小为N + 1的数组返回计数.在O(n)时间做.

一个例子是:

给定7,然后返回[0,1,1,2,1,2,2,3]

当然,最简单的方法是为每个整数创建一个计数1的循环,但这将是O(kn)时间,其中k是整数的大小(以位为单位).所以要么有办法在O(1)时间内计算一个整数的1,或者有一种方法可以直接生成从0到N的计数.我确定这两种方法都存在,但无法弄清楚无论是.

arrays algorithm math bit-manipulation time-complexity

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

Docker 构建器构建与 docker 构建

在 Docker 的文档页面上,有一个docker builder条目,它是docker builder build的父命令。docker builder build似乎与 完全相同的命令docker build,并且文档没有提供有关它的信息。它们实际上是同一回事吗?

docker

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

在Mac OS X Sierra上设置环境变量?

例如,我想按照本指南关于如何禁用Brew分析(在警告下),但我不知道如何找到我的环境变量.

我发现的大多数指南都是过时的,比如这个指南.~/.bash_profile根据答案的描述不存在.有些人可以向新的MacOS用户解释现在这一切是如何运作的吗?

请注意我对基于Unix的文件系统的理解是有限的.把我当作菜鸟.

environment-variables macos-sierra

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

为什么ToOwned绑定Borrow而不是AsRef

如果我理解正确,Borrow并且AsRef具有字面上完全相同的特征定义。它们之间的区别在于,Borrow旨在解决通用哈希表和其他关联集合类型的特定情况。此外,这种差异不是由编译器强制执行的,而是记录为意图。

现在,考虑 的定义ToOwned

trait ToOwned {
    type Owned: Borrow<Self>;
    fn to_owned(&self) -> Self::Owned;
}
Run Code Online (Sandbox Code Playgroud)

为什么用OwnedboundBorrow而不是AsRef?通过扩展 的记录意图Borrow,它必须旨在to_owned生成与其借用值相同的散列和比较方式的东西。ToOwned考虑到与哈希表无关,这似乎是一个不必要的约束?

rust

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

具有空元素的有序,预订货和后订货遍历的唯一性

我们都知道不同的二叉树可以具有相同的inorderpreorderpostorder遍历。但是,如果我们将null元素包括在预定遍历中,则遍历的结果将是唯一的,只要树是唯一的即可。考虑以下两棵树:

  3                      3
 /                        \
4            vs.           4
Run Code Online (Sandbox Code Playgroud)

它们的正常遍历将同时{3,4}用于两者,但是如果我们要包含null元素,则它们的遍历将是{3,4,null,null,null}{3,null,4,null,null}尊敬,使穿越独特。

我的问题是,对于有序遍历和后序遍历也是如此吗?我们怎么证明呢?

algorithm tree

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

websocket 连接如何通过负载均衡器工作?

请原谅我的无知,因为我在负载均衡器和 websockets 方面的经验有限。我试图了解客户端如何通过 websockets 连接到位于负载均衡器后面的服务器集群。

我对负载均衡器的理解是它们就像反向代理。它们接受来自客户端的请求,将它们路由到集群中的服务器,当服务器回复负载均衡器时,负载均衡器将该信息转发给客户端。在这方面,他们就像是在服务器和客户端之间玩电话的中间人。

现在将 websockets 添加到组合中。如果客户端尝试通过 websockets 进行通信。负载均衡器不需要打开 2 个 websockets 连接吗?一个与客户端,一个与服务器?这听起来不会扩展,除非还有一组负载平衡器。

我的第二个猜测是负载均衡器并没有真正“中继”信息,它们只是一个路由器,为客户端提供服务器的 IP,然后直接在服务器和客户端之间进行通信。

看到的有关这方面的信息都忽略了这部分的解释。如果有人能解释我遗漏了什么,我将不胜感激。

load-balancing system-design websocket

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

Maven 卡在下载 maven-default-http-blocker

我正在此处构建提供的 Google Dataflow 模板。所以我正在运行命令:

mvn compile exec:java \
-Dexec.mainClass=com.google.cloud.teleport.templates.<template-class> \
-Dexec.cleanupDaemonThreads=false \
-Dexec.args=" \
--project=<project-id> \
--stagingLocation=gs://<bucket-name>/staging \
--tempLocation=gs://<bucket-name>/temp \
--templateLocation=gs://<bucket-name>/templates/<template-name>.json \
--runner=DataflowRunner"
Run Code Online (Sandbox Code Playgroud)

然而,编译似乎被困在下载中maven-default-http-blocker。我添加后的日志-X是:

[DEBUG] Could not find metadata io.grpc:grpc-api/maven-metadata.xml in local (/Users/bli00/.m2/repository)
[DEBUG] Skipped remote request for io.grpc:grpc-api/maven-metadata.xml, locally cached metadata up-to-date
[DEBUG] Could not find metadata io.grpc:grpc-netty-shaded/maven-metadata.xml in local (/Users/bli00/.m2/repository)
[DEBUG] Skipped remote request for io.grpc:grpc-netty-shaded/maven-metadata.xml, locally cached metadata up-to-date
[DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for confluent (http://packages.confluent.io/maven/).
[DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) …
Run Code Online (Sandbox Code Playgroud)

maven

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

Golang正则表达式替换字符串

我有以下可能形式的字符串:

MYSTRING=${MYSTRING}\n
MYSTRING=\n
MYSTRING=randomstringwithvariablelength\n
Run Code Online (Sandbox Code Playgroud)

我希望能够以正则表达式到这一点MYSTRING=foo,基本上之间的一切替换MYSTRING=\n.我试过了:

re := regexp.MustCompile("MYSTRING=*\n")
s = re.ReplaceAllString(s, "foo")
Run Code Online (Sandbox Code Playgroud)

但它不起作用.任何帮助表示赞赏.


PS \n表示为此目的有换行符.它实际上并不存在.

regex go

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

从列表中删除重复列表

首先让我承认之前已经提出这个问题,但答案似乎过时或不满意.问题是一个未排序列表的列表,我们如何以最有效和优雅的方式删除重复项?(即使用最短的语法与最快的计算时间)

例:

鉴于[[1,2,3],[],[2,-2],[3,2,1]],我们想要[[1,2,3],[],[2,-2]].需要注意的是不论[1,2,3][3,2,1]无所谓.

python python-3.x

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