小编Ale*_*lex的帖子

快速算法查找矩形内的所有点

给定2D空间中的一组不同点,以及矩形(所有四个点的坐标,与xy轴平行的边),如何快速找到矩形内的哪些点?

我对通过所有点并看到哪个点位于矩形内的基本解决方案不感兴趣.我正在寻找的是一种算法,它可以为每个矩形提供快速的查询时间.

我不在乎我在预处理步骤中花了多少时间.我所关心的是,在处理完数据之后,我获得了一个有用的结构,它为每个矩形提供了快速的查询时间.

我知道例如我可以计算O(logN)中矩形内有多少个点.这是有效的,因为我在开始时做了很多繁重的处理,然后每次用新的矩形查询处理过的数据,并在logN时间内得到一个新的计数.我正在寻找一种类似的算法,用于找到实际的点,而不仅仅是它们的数量.

algorithm computational-geometry

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

如何反序列化芹菜中的日期时间字符串?

我有一个 celery 任务函数,它将 datetime 对象作为属性。然而,在 celery 任务中,这个对象是一个字符串。我想这是工作中的序列化。

如何在另一端执行反序列化?我必须自己处理它还是有一种更优雅的方法来做到这一点,它是内置在芹菜中的?

# tasks.py
@shared_task
def my_func(start_time, end_time):
  print(type(start_time)) # unicode, need datetime


# calling file
my_func.delay(datetime.now()-timedelta(hours=1), datetime.now())
Run Code Online (Sandbox Code Playgroud)

python celery

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

如何将我的java程序转换为linux上的命令行实用程序?

我使用intellij idea在ubuntu上用java编写了一个小命令行应用程序.我正在将我的项目编译为jar文件,然后我可以使用它来执行

java -jar myapp.jar arg1 arg2 arg3 etc
Run Code Online (Sandbox Code Playgroud)

但是,我想像这样运行我的应用程序:

myapp arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我怎么能这样做,以便我发送我的应用程序的其他人可以使用相同的方式?

java linux intellij-idea

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

F#奇怪的模式匹配结果

我正在写一个二进制搜索实现.我遇到的问题是模式匹配块.

使用模式匹配的代码返回奇怪的结果.第一个匹配块不会返回我期望的内容.它警告我(_,_)永远不会到达.

let binSearch (item:double) (arr:list<double>) =
    let rec binSearchRec first last =
        if first > last then
            let lastIndex = arr.Length-1
            let len = arr.Length
            match (first, last) with
            | (0, -1) -> System.String.Format("ITEM SMALLER THAN {0}", arr.[0])
            | (len, lastIndex) -> System.String.Format("ITEM BIGGER THAN {0}", arr.[lastIndex])
            | (_,_) -> System.String.Format("IN BETWEEN {0} AND {1}", arr.[last], arr.[first])
        else
            let mid = (first+last)/2
            match item.CompareTo(arr.[mid]) with
            | -1 -> binSearchRec first (mid-1)
            | 0 -> "CONTAINS"
            | 1 …
Run Code Online (Sandbox Code Playgroud)

f#

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

是否可以在 golang 中使用反射来获取用户定义类型的基础类型?

我有这种类型:

type T string
Run Code Online (Sandbox Code Playgroud)

我可以获得 对象的基础类型T吗?例如:

package main

import (
    "fmt"
    "reflect"
)

type T string

func main() {
    var t = T("what")
    tt := reflect.TypeOf(t)
    fmt.Println(tt) // prints T, i need string
}
Run Code Online (Sandbox Code Playgroud)

go

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