小编Raj*_*jan的帖子

将不同半径的N个圆圈放置在较大的圆内,不重叠

给定具有半径r1 ... rn的n个圆,以这样的方式定位它们,使得没有圆重叠并且边界圆具有"小"半径.

程序将列表[r1,r2,... rn]作为输入并输出圆的中心.

  1. 我要求"小",因为"最小"半径将其转换为更难的问题(最小版本已被证明是NP难/完全 - 请参阅问题末尾附近的脚注).我们不需要最低限度.如果圆圈形状看起来相当圆,那就足够了.
  2. 如果有帮助,您可以假设Rmax/Rmin <20.
  3. 一个低优先级的问题 - 该计划应该能够处理2000多个圈子.首先,即使100-200圈也应该没问题.
  4. 你可能已经猜到圆圈不需要紧紧地包在一起,甚至不能互相接触.

目的是提出给定圆圈的视觉上令人愉悦的布置,其可以适合更大的圆圈并且不留下太多的空白空间.(如色盲测试图中的圆圈). 替代文字

你可以使用下面的Python代码作为起点(这个代码需要numpy和matplotlib - linux上的"sudo apt-get install numpy matplotlib")...

import pylab
from matplotlib.patches import Circle
from random import gauss, randint
from colorsys import hsv_to_rgb

def plotCircles(circles):
    # input is list of circles
    # each circle is a tuple of the form (x, y, r)
    ax = pylab.figure()
    bx = pylab.gca()
    rs = [x[2] for x in circles]
    maxr = max(rs)
    minr = min(rs)
    hue = …
Run Code Online (Sandbox Code Playgroud)

language-agnostic algorithm geometry

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

Cassandra数据复制问题

I have a 2 node cassandra cluster with a replication factor of 2 and AutoBootStrap=true. Everything is good during startup and both nodes see each other. Let us call these nodes A and B.

  1. Add a set of keys and columns (lets call this set K1) to cassandra through node A.
  2. Connect to node A and read back set K1. Same on Node B. Success - Good
  3. Kill Cassandra process on Node B.
  4. Add set K2 through A.
  5. Connect to …

replication cassandra

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

打印1后跟googolplex数量为零

假设我们不关心程序的运行时间(对于人类凡人来说实际上是无限的)并且使用有限的内存量(2 ^ 64字节),我们想要打印出基数10,精确值为10 ^(googolplex) ),屏幕上一次一个数字(大多数为零).

描述一种算法(可以在当天的计算机上编码),或编写程序来执行此操作.由于我们实际上无法检查输出,因此我们将依赖集体意见来确定程序的正确性.

注意:我不知道解决方案,或者是否存在解决方案.问题是我自己的发明.那些快速标记这个外在的读者......善意地重新考虑.这很困难,有点理论但肯定是CS.

algorithm

7
推荐指数
2
解决办法
1538
查看次数