我正在尝试找出一种算法,用于在有向图上找到路径.这不是一个传统的路径,我找不到任何像这样的东西的引用.
我想找到具有最大最小重量的路径.
即如果有两条路径的权重为10-> 1-> 10且2-> 2-> 2则第二路径被认为优于第一路径,因为最小权重(2)大于第一路径的最小权重( 1).
如果有人可以找到一种方法来做到这一点,或者只是指向一些参考资料的方向,那将是非常有用的:)
编辑::我似乎忘了提到我正试图从一个特定的顶点到另一个特定的顶点.非常重要的一点:/
EDIT2 ::如下所述,我应该强调边缘权重是非负的.
我目前正在为XNA游戏开发详细等级系统,该系统细分屏幕空间误差较高的三角形,并合并屏幕空间误差较低的三角形。
世界空间误差是一种启发式算法,它估计该三角形具有的误差,因此,例如,如果在几乎平坦的表面上存在一个三角形,则它将具有非常低的屏幕空间误差,因为它与该表面非常近似,但是如果球体表面上存在三角形,则屏幕空间误差会更高,因为显然将该三角形分成更多的三角形会更好地近似于球体表面。
屏幕空间误差是对世界空间误差的略微修改,基本上已对误差进行了修改,因此,靠近摄像机且靠近视场中心的三角形具有较高的误差得分。
什么是计算屏幕空间错误的好方法?
当前解决方案:屏幕空间错误=世界空间错误/点([到所讨论三角形的矢量],[相机方向矢量])
我最近一直在研究我的第一个google wave机器人,它的作用的重要部分是将内联回复插入到一个blip中.我不能为我的生活弄清楚如何做到这一点!
API文档有一个函数InsertInlineBlip听起来很有希望,但是调用似乎没有做任何事情!
编辑::似乎这是一个已知的错误.但是,问题仍然是插入内联blip的正确方法是什么?我假设这样的事情:
inline = blip.GetDocument().InsertInlineBlip(positionInText)
inline.GetDocument().SetText("some text")
Run Code Online (Sandbox Code Playgroud) 我有几个项目,能够从appengine与SVN服务器进行交互是有用的.
我更喜欢python解决方案,但如果必须,我可以使用java生存
Java有两个用于右移的位移操作符:
>> shifts right, and is dependant on the sign bit for the sign of the result
>>> shifts right and shifts a zero into leftmost bits
Run Code Online (Sandbox Code Playgroud)
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op3.html
这看起来相当简单,所以任何人都可以向我解释为什么这个代码,当bar为-128的值时,为foo产生-2的值:
byte foo = (byte)((bar & ((byte)-64)) >>> 6);
Run Code Online (Sandbox Code Playgroud)
这意味着要做一个8位字节,最左边2位的掩码,并将它们移到最右边的2位.即:
initial = 0b10000000 (-128)
-64 = 0b11000000
initial & -64 = 0b10000000
0b10000000 >>> 6 = 0b00000010
Run Code Online (Sandbox Code Playgroud)
结果实际上是-2,即
0b11111110
Run Code Online (Sandbox Code Playgroud)
IE浏览器.1s而不是零被移动到左侧位置
这是一个快速而简单的问题:使用 C++ 中的 GDI+,我将如何从内存中的像素数据加载图像?
什么是.NET 4.0的优秀分析器?我愿意花一些钱,但不要太多(说高达50英镑)
我正在使用XNA为windows phone和xbox开发游戏,这意味着这些项目是商业化的.我提到它是因为我看过几个免费用于非商业用途.
Visual Studio集成的额外要点.
铌.我正在使用Visual Studio Professional 2010
我正在修改即将到来的Haskell考试,我不理解过去论文中的一个问题.谷歌没有任何用处
fst(x, y) = x
square i = i * i
Run Code Online (Sandbox Code Playgroud)
i)源减少,使用Haskells懒惰评估,表达式:
fst(square(3+4), square 8)
Run Code Online (Sandbox Code Playgroud)
ii)使用严格的评估,源减少相同的表达式
iii)说明懒惰评估的一个优点和严格评估的一个优点
我不明白什么是源减少?
我有一个用C#编写的枚举器,它看起来像这样:
try
{
ReadWriteLock.EnterReadLock();
yield return foo;
yield return bar;
yield return bash;
}
finally
{
if (ReadWriteLock.IsReadLockHeld)
ReadWriteLock.ExitReadLock();
}
Run Code Online (Sandbox Code Playgroud)
我相信这可能是一个危险的锁定模式,因为ReadWriteLock只有在枚举完成时才会被释放,否则锁被挂起并且永远不会释放,我是否正确?如果是这样,打击这个的最佳方法是什么?
我写了一个简单的小辅助方法,用来计算从一个点到一个平面的距离.然而,它似乎正在回归荒谬的结果.因此,我创建一个平面的代码是:
Plane = new Plane(vertices.First().Position, vertices.Skip(1).First().Position, vertices.Skip(2).First().Position);
Run Code Online (Sandbox Code Playgroud)
相当简单,我希望你会同意.它使用三个点创建XNA平面结构.
现在,在此之后我立即:
foreach (var v in vertices)
{
float d = Math.Abs(v.ComputeDistance(Plane));
if (d > Constants.TOLERANCE)
throw new ArgumentException("all points in a polygon must share a common plane");
}
Run Code Online (Sandbox Code Playgroud)
使用我用于构造平面的同一组顶点,我抛出了异常!在数学上这是不可能的,因为这三个点必须位于飞机上.
我的ComputeDistance方法是:
public static float ComputeDistance(this Vector3 point, Plane plane)
{
float dot = Vector3.Dot(plane.Normal, point);
float value = dot - plane.D;
return value;
}
Run Code Online (Sandbox Code Playgroud)
据我所知,这是正确的.那么我可能做错了什么?或者我可能遇到XNA实施中的错误?
一些示例数据:
Points:
{X:0 Y:-0.5000001 Z:0.8660254}
{X:0.75 Y:-0.5000001 Z:-0.4330128}
{X:-0.75 Y:-0.5000001 Z:-0.4330126}
Plane created:
{Normal:{X:0 Y:0.9999999 Z:0} D:0.5} //I …Run Code Online (Sandbox Code Playgroud) c# ×3
debugging ×2
graphics ×2
java ×2
python ×2
xna ×2
.net-4.0 ×1
algorithm ×1
bit-shift ×1
c++ ×1
evaluation ×1
gdi+ ×1
geometry ×1
google-wave ×1
graph ×1
graph-theory ×1
haskell ×1
image ×1
load ×1
locking ×1
math ×1
path-finding ×1
profiler ×1
profiling ×1
reduction ×1
svn ×1
terminology ×1
yield-return ×1