我正在写一个顶点着色器,我需要一些随机数.顶点着色器硬件没有逻辑/位操作,因此我无法实现任何标准随机数生成器.是否可以仅使用标准算法制作随机数生成器?随机性不一定特别好!
我有一组数据,我想找到最大和最小的项目(多次),最好的方法是什么?
对于任何对该应用程序感兴趣的人,我正在开发一个详细级别的系统,我需要查找具有最大和最小屏幕空间错误的项目,显然每次我细分/合并一个项目我必须将其插入队列但每次相机移动整个数据集更改 - 所以最好只使用排序列表并推迟添加新项目,直到下次我排序(因为它经常发生)
我正在编写一个应用程序,它从一系列任意RSS提要中获取数据.在后台异步轮询订阅源,每次将新项添加到订阅源时都会调用方法.
我的问题是确定Feed中的新项目.最好的方法是什么?我想出了一些想法,但它们都是有缺陷的.
建议:每次轮询时,保留比上次轮询中最后一项的pubDate更新的所有项目问题:pubDate不是必填字段.
建议:为您返回的每个项目保留内容的哈希值,并且不返回具有相同哈希值的内容问题:在内存使用方面快速增长失控
我有一个Parallel.ForEach()循环,它接受一个URL列表并下载每个URL以进行一些额外的处理.在我的循环之外,我已经声明了一个循环计数器变量,并且在循环体内我使用Interlocked.Increment()认为这将是保持"线程安全"方式的最佳方法,即在执行每个循环交互时增加计数.
int counter = 0;
Parallel.ForEach(urlList, (url, state) =>
{
// various code statments
Interlocked.Increment( ref counter );
Debug.WriteLine(" ......... counter: " + counter);
});
Run Code Online (Sandbox Code Playgroud)
我原以为我会看到类似的东西:
......... 1
......... 2
......... 3
......... 4
......... 5
.........
.........
......... n
Run Code Online (Sandbox Code Playgroud)
但我得到的是16"......... 0"(这是因为我有一个双核四核计算机,有8个本机核心,但是启用了超线程,总共有16个核心).然后我将开始看到计数器在大多数情况下正常递增,但有时我会在Debug输出中看到重复或甚至三重计数器值.
使用Parallel.ForEach()计算循环迭代的最佳方法是什么?谢谢你的建议.
我目前正在为XNA游戏开发详细等级系统,该系统细分屏幕空间误差较高的三角形,并合并屏幕空间误差较低的三角形。
世界空间误差是一种启发式算法,它估计该三角形具有的误差,因此,例如,如果在几乎平坦的表面上存在一个三角形,则它将具有非常低的屏幕空间误差,因为它与该表面非常近似,但是如果球体表面上存在三角形,则屏幕空间误差会更高,因为显然将该三角形分成更多的三角形会更好地近似于球体表面。
屏幕空间误差是对世界空间误差的略微修改,基本上已对误差进行了修改,因此,靠近摄像机且靠近视场中心的三角形具有较高的误差得分。
什么是计算屏幕空间错误的好方法?
当前解决方案:屏幕空间错误=世界空间错误/点([到所讨论三角形的矢量],[相机方向矢量])
我有几个项目,能够从appengine与SVN服务器进行交互是有用的.
我更喜欢python解决方案,但如果必须,我可以使用java生存
对于大学本学期,我们必须以4人为一组编写网络游戏(java).我自愿为我的团队研究网络代码.
阅读java网络,似乎有两种UDP网络方法:
http://java.sun.com/j2se/1.4.2/docs/api/java/net/DatagramSocket.html 这是一个标准的UDP套接字,可以将数据包发送到任何端口的任何IP地址.
http://java.sun.com/j2se/1.4.2/docs/api/java/nio/channels/DatagramChannel.html 这是一种基于udp套接字构建的通道系统.我不完全确定它提供什么,除了只连接到一个客户端的能力,这在这种情况下不是很有用.
这些是唯一的选择吗?哪个最适合用于4-8名玩家的实时多人游戏?
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而不是零被移动到左侧位置
我正在研究基于Fountain Code的文件传输系统.在此系统中,下载数据块,并与xor函数结合使用.我想在块到达时验证它们.
我需要的是加密安全散列函数,它具有以下属性:
哈希(A)^哈希(B)==哈希(A ^ B)
这样的事情存在吗?
注意:数据块必须与xor函数组合,散列可以与您喜欢的任何函数组合,只要它的计算成本相当便宜.
我有一段看起来像这样的代码:
public TReturn SubRegion(TParam foo)
{
Contract.Requires(foo!= null);
Contract.Ensures(Contract.Result<TReturn>() != null);
if (!CheckStuff(foo))
foo.Blah();
return OtherStuff(foo);
}
Run Code Online (Sandbox Code Playgroud)
CC正在给我一个警告:
警告301 CodeContracts:考虑添加后置条件Contract.Ensures(Contract.Result()!= null); 为库客户提供额外的文档
这显然是多余的!我有几个这样的冗余警告,它正在成为一个问题(真正的警告被埋没在多余的冗余建议中).
所以我有两个问题:
1)我错过了什么意味着这不是一个多余的建议吗?在这种情况下,我需要做些什么来修复此警告?
2)或者,如果这只是CCCheck的一个怪癖并且无法修复,我如何隐藏或抑制此警告?
注:万一你觉得我的例子缺少一些重要的东西,全部代码是区域SubRegion1方法在这里.