我有3个点(A,B和X)和距离(d).我需要创建一个函数来测试点X是否比距离d更接近线段AB上的任何点.
问题首先是,我的解决方案是正确的,然后提出更好(更快)的解决方案.
我的第一次通过如下
AX = X-A
BX = X-B
AB = A-B
// closer than d to A (done squared to avoid needing to compute the sqrt in mag)
If d^2 > AX.mag^2 return true
// closer than d to B
If d^2 > BX.mag^2 return true
// "beyond" B
If (dot(BX,AB) < 0) return false
// "beyond" A
If (dot(AX,AB) > 0) return false
// find component of BX perpendicular to AB
Return (BX.mag)^2 - (dot(AB,BX)/AB.mag)^2 < d^2
Run Code Online (Sandbox Code Playgroud)
这段代码最终将运行一大堆P和一大组A/B/d三元组,目的是找到所有通过至少一个A/B/d的P,所以我怀疑有一种方法在此基础上降低总体成本,但我还没有考虑过. …
language-agnostic algorithm optimization performance geometry
我有一张表格
CREATE TABLE data
{
pk INT PRIMARY KEY AUTO_INCREMENT,
dt BLOB
};
Run Code Online (Sandbox Code Playgroud)
它在blob列中有大约160,000行和大约2GB的数据(平均每个blob 14kb).另一个表在此表中有外键.
像3000个blob这样的东西是相同的.所以我想要的是一个查询,它将给我一个重新映射表,允许我删除重复项.
天真的方法在30-40k行上花了大约一个小时:
SELECT a.pk, MIN(b.pk)
FROM data AS a
JOIN data AS b
ON a.dt=b.dt
WHERE b.pk < a.pk
GROUP BY a.pk;
Run Code Online (Sandbox Code Playgroud)
出于其他原因,我碰巧有一个具有blob大小的表:
CREATE TABLE sizes
(
fk INT, // note: non-unique
sz INT
// other cols
);
Run Code Online (Sandbox Code Playgroud)
通过为sz构建fk和另一个的索引,直接查询需要大约24秒,每行50k行:
SELECT da.pk,MIN(db.pk)
FROM data AS da
JOIN data AS db
JOIN sizes AS sa
JOIN sizes AS sb
ON
sa.size=sb.size
AND da.pk=sa.fk
AND db.pk=sb.fk
WHERE
sb.fk<sa.fk …Run Code Online (Sandbox Code Playgroud) 我需要为类赋值创建一个2D凸包函数,我想要一个比赋值更强大的测试用例.有没有人知道一个大的测试案例(25 <n <100)的解决方案?
这是基于这个问题.提出了一些产生非均匀分布的答案,我开始想知道如何量化输出的非均匀性.我不是在寻找模式问题,只是单一价值方面.
接受的程序是什么?
我目前的想法是通过计算每个值的熵并采用加权平均来计算每次调用的平均Shannon熵.然后可以将其计算为预期值.
我担心的是
对于#1我想知道我是否正确.
对于#2,我担心的是我会处理大小如1/7 +/- 1e-18的数字而且我担心浮点错误会因为最小的问题而杀死我.计算的确切形式可能会导致一些主要的差异,我似乎记得有一些特殊日志案例的ASM选项,但我似乎无法找到关于此的文档.
在这种情况下,使用该范围的"良好"PRNG [1,n]并生成该范围的SRNG [1,m].问题是结果比输入差多少?
我所拥有的是每个输出值的预期发生率.
我有一个包含内容表的页面,我需要允许用户选择要处理的行。我已经想出了如何向表格中添加一列复选框,但我似乎无法弄清楚如何测试提交表单时它们是否被选中。如果它们是静态元素,我可以只检查 dothis.theCheckBox但它们是通过编程生成的。
此外,我对如何将我的数据附加到它们(通过将其塞入 ID 属性中)的方式也不太满意。
我不确定它是否相关,但我正在查看一些 catch-22,因为我需要知道在我重新运行创建它们的代码之前检查了上次创建的哪些复选框。
编辑:
我找到了一个几乎解决方案。通过设置AutoPostBack属性和CheckedChanged事件:
checkbox.AutoPostBack = false;
checkbox.CheckedChanged += new EventHandler(checkbox_CheckedChanged);
Run Code Online (Sandbox Code Playgroud)
对于任何已更改的复选框,我可以在回发时调用代码。然而这有两个问题:
Page_Load在我需要使用此信息之后(或期间,我不确定)处理的编辑2:
我最终做的是用一个知道前缀标记我的所有 ID 并将其填充在顶部Form_Load:
foreach (string v in this.Request.Form.AllKeys)
{
if (v.StartsWith(Prefix))
{
var data = v.Substring(Prefix.Length);
}
}
Run Code Online (Sandbox Code Playgroud)
其他一切似乎都晚了。
有没有办法获得一个无点的C流对象(一个FILE*对象)?
我知道fopen("/dev/null","w");会工作,但我想知道是否有更好的方法.
优选地,该位以比posix层更高的级别对数据进行分组,并且也更便携.
我正在考虑为Valgrind的客户端请求API建立一个D接口.通过在头文件中进行捣乱并对其进行反编译,我最终可以弄清楚它正在做什么,但我想知道它们是否是关于工作原理的权威文档?(顺便说一句,我已经找到了这个文件,但它没有足够的信息)
我正在寻找的将回答如下问题:如何生成宏来包装/调用返回32位机器字并且需要64位浮点数的函数?
我正在尝试从文本blob中过滤名称.目前我只是生成一个单词列表并手动过滤它但我已经有大约8k字了,所以我正在寻找更好的方法.我可以抓住一本字典并过滤掉它们,但这样可以剔除像史密斯和悬崖这样的名字.
我需要的是以下任何一种:
我想他们之间,我可以组合黑名单/白名单来获得我需要的东西.
这可能是一个非常愚蠢的问题,但我需要确定.我在头文件中得到了一个类声明,例如.
#ifndef file_H
#define file_H
class ex{
private:
public:
};
#endif
Run Code Online (Sandbox Code Playgroud)
我已经被要求在相同的文件中编写方法定义,我已经完成了,我的问题是"#endif"是否保留在类声明之后的位置,还是在文件末尾之后.类方法定义?
我有一个基于Python的程序,我想作为一个守护进程运行.目前我正在以一种非常hackish的方式开始使用会话并使用它来杀死它.screen-d -m namepkill -9 -f name
最终我要把它移到我们在这里使用的更好的系统(因此我不愿意修改程序)但是在此期间,我正在寻找一种更清洁的方法来做到这一点.
我目前的想法是从inti.d脚本作为后台任务开始,但是如何编写该部件以使其恢复原状?
c++ ×2
geometry ×2
optimization ×2
algorithm ×1
api ×1
asp.net ×1
bash ×1
bitbucket ×1
blob ×1
c ×1
checkbox ×1
convex-hull ×1
corpus ×1
d ×1
daemon ×1
file-io ×1
filtering ×1
forms ×1
gcc ×1
header-files ×1
init.d ×1
join ×1
linux ×1
mysql ×1
performance ×1
python ×1
quantify ×1
random ×1
testcase ×1
text ×1
valgrind ×1