这似乎并不重要(它在各种论坛上得到了很多讨论),但我绝对需要将它作为更复杂算法的构建块.
输入:2D中的2个多边形(A和B),以[(x0, y0, x1, y2), ...]每个边的列表形式给出.这些点由doubles 对表示.我不知道它们是顺时针,逆时针还是任何方向.我不知道他们不一定是凸的.
输出:表示A,B和交叉多边形AB的3个多边形.其中任何一个都可以是空(?)多边形,例如null.
优化提示:这些多边形代表房间和楼层边界.所以房间边界通常与地面边界完全相交,除非它属于同一平面上的另一层(argh!).
我有点希望有人已经在c#中完成了这个并且让我使用他们的策略/代码,因为到目前为止我在这个问题上发现的是相当艰巨的.
编辑:所以看起来我并不完全是鸡,因为这样做的前景微弱.我想在这里重述所需的输出,因为这是一个特例,可能会使计算更简单:
输出:第一个多边形减去所有相交的位,交叉多边形(复数是正常的).我对第二个多边形并不感兴趣,只是它与第一个多边形的交集.
EDIT2:我目前正在使用GPC(General Polygon Clipper)库,这非常容易!
鉴于以下功能:
Function f(n,m)
if n == 0 or m == 0: return 1
return f(n-1, m) + f(n, m-1)
Run Code Online (Sandbox Code Playgroud)
什么是运行时的复杂性f?我知道如何快速和肮脏,但如何正确表征它?是O(2^(m*n))吗?
cURL给了我错误:
Operation timed out after 0 milliseconds with 0 out of 0 bytes received
Run Code Online (Sandbox Code Playgroud)
特别是,"0毫秒"部分是可疑的......
我的初始化代码:
$curl = curl_init($requestUrl); // private URL not published
curl_setopt($curl, CURLOPT_FRESH_CONNECT, true);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Content-Type: application/xml", "Accept: application/xml"));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 20);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_HTTP200ALIASES, range(400, 599));
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
Run Code Online (Sandbox Code Playgroud)
超时似乎设置正确,可能与哪些相关?
我只是想让我的c ++代码在我的mac终端上正确输出,但它没有显示任何内容.我使用xcode作为文本编辑器,将文件保存为Code.cpp,然后在终端中键入g ++ Code.cpp.在我的代码有错误时显示错误之前,但现在它正确运行它没有显示任何输出.有什么想法吗?这是我的代码:
#include <iostream>
using namespace std;
int main() {
cout << "Hello World" << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是我放入终端的内容,它只是在没有"Hello World"输出的情况下跳到下一行.
jspencer$ g++ Code.cpp
jspencer$
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!!
我有amxn矩阵,希望能够计算任意矩形子矩阵的总和.对于给定的矩阵,这将发生几次.我应该使用什么数据结构?
例如,我想在矩阵中找到矩形的总和
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Run Code Online (Sandbox Code Playgroud)
总和是68.
我要做的是逐行累积它:
1 2 3 4
6 8 10 12
15 18 21 24
28 32 36 40
Run Code Online (Sandbox Code Playgroud)
然后,如果我想找到矩阵的总和,我只需积累 28,32,36,40 = 136.只有四个操作而不是15个.如果我想找到第二和第三行的总和,我只累加15,18,21,24并减去1,2,3,4 = 6 + 8 + 10 + 12 + 15 + 18 + 21 + 24 = 68.但在这种情况下,我可以使用另一个矩阵,按列累积这个矩阵:
1 3 6 10
5 11 18 26
9 19 30 42
13 27 42 58
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我只是总和 …
设一个v长度n为a的向量,v = randi([0 1],1,n)随机包含0或1.
获取向量表示每个0段或1段中有多少0或1的有效方法是什么?
例:
v = [1 0 0 0 1 1 0 0 1] ---->
counts = [0 1 3 2 2 1] (*0* zero, *1* one, *3* zeros, ....)
v = [0 0 1 0 0 0] ---->
counts = [2 1 3]
Run Code Online (Sandbox Code Playgroud)
PS总是首先计数0,如果向量以1开始,则结果向量的第一个条目,即计数(1),应为0.
我正在使用openpyxl读取和写入xlsx文件,出于某些数据操作的目的,我需要将我的工作表(我在2D矩阵中表示)转换为遵循特定格式的字典,这是我的矩阵.
[['Name', 'Age', 'Gender', 'Height', 'Hair Color'],
['Jay', '12', 'M', '123cm', 'Black'],
['Marie', '13', 'F', '100cm', 'Red'],
['Dan', '16', 'M', '200cm', 'Brown']
]
Run Code Online (Sandbox Code Playgroud)
我想翻译这个,以便生成的字典看起来像:
{
{ 'Jay;12;M' : 'Name': 'Jay', 'Age': '12', 'Gender': 'M', 'Height': '123cm', 'Hair Color' : 'Black'},
{ 'Marie;13;F' : 'Name': 'Marie', 'Age': '13', 'Gender': 'F', 'Height': '100cm', 'Hair Color' : 'Red'},
{ 'Dan;16;M' : 'Name': 'Dan', 'Age': '16', 'Gender': 'M', 'Height': '200cm', 'Hair Color' : 'Brown'},
}
Run Code Online (Sandbox Code Playgroud)
我对Python比较陌生,我相信字典理解是要走的路,但我不确定如何通过名称获取这些2D数组值,以便我可以正确构建我的键值对.