在这个问题中,r是一个固定的正整数.在平面中给出N个矩形,大小相同.侧面可以是垂直的也可以是水平的.我们假设所有N个矩形的交叉区域具有非零区域.问题是如何找到这些矩形的Nr,以便最大化交叉区域.当实际显微镜中的一个重复成像给定的生物样本时,这个问题出现,并且由于物理原因(例如显微镜和相机的部件的不同扩展),在该过程期间对准稍微改变.我已经表达了维度d = 2的问题.每个d> 0都存在类似的问题.对于d = 1,通过对间隔的左手端点进行排序来获得O(N log(N))解.但是我们坚持使用d = 2.如果r = 1,则可以通过对角的坐标进行排序来再次解决时间O(N log(N))的问题.
因此,通过首先解决案例(N,1)获得N-1个矩形,然后解决案例(N-1,1),获得N-2个矩形等来解决原始问题,直到我们减少到Nr矩形?我有兴趣看到这个乐观尝试过程的明确反例.如果程序有效会更有意思(请证明!),但这似乎过于乐观了.
如果r固定在某个值r> 1,并且N很大,那么NP类中的一个是这个问题吗?
感谢您对此的任何想法.
大卫
将 ((2.0,3.1),(7.0,4.2),(8.9,1.0),(-8.9,7)) 转换为 ((2,3),(7,4),(8,1),(-8) ,7))
它可以将元组转换为 numpy 数组,然后应用 .astype(int),但是有没有更直接的方法?另外我的“解决方案”似乎太特别了。
它可以使用 numpy
import numpy
data = ((2.0,3.1),(7.0,4.2),(8.9,1.0),(-8.9,7))
data1 = numpy.array(data)
data2 = data1.astype(int)
data3 = tuple(tuple(row) for row in data2)
data3 # ((2, 3), (7, 4), (8, 1), (-8, 7))
Run Code Online (Sandbox Code Playgroud)
((2, 3), (7, 4), (8, 1), (-8, 7)) 符合预期和期望
我最近问了一个标题为“python find the type of a function”的问题,并得到了非常有用的答案。这是一个相关的问题。
假设我导入我编写的 *.py 文件,这些导入导致f成为我定义的函数之一。现在我写信给我的 python 解释器x = f。后来,我想看到 的完整定义f,最好还有注释,只知道x。这可能吗?python 是否记得定义是从哪个文件导入的,这当然不足以给出 的完整定义f,除非可以找到实际的相关定义?
我有一个变量 f。我如何确定它的类型?这是我的代码,输入到 python 解释器中,显示使用我在 Google 上找到的许多示例的成功模式时出现错误。(提示:我对 Python 非常陌生。)
>>> i=2; type(i) is int
True
>>> def f():
... pass
...
>>> type(f)
<class 'function'>
>>> type(i)
<class 'int'>
>>> type(f) is function
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'function' is not defined
>>> f=3
>>> type(f) is int
True
Run Code Online (Sandbox Code Playgroud)
使用 fa 函数,我尝试将 type(f) 的返回值转换为字符串,其中 u = str(type(f))。但是当我尝试 u.print() 时,我收到一条错误消息。这对我提出了另一个问题。在 Unix 下,来自 Python 的错误消息会出现在 stderr 或 stdout 上吗?