小编Joh*_*sky的帖子

如何证明一个随机数发生器比另一个好?

你如何证明一个RNG优于另一个?

我并不是说在运行时间方面,而是"生成"的熵量 - 它也在周期性概念中滚动(低周期=低熵).

RNG可以证明是最佳的吗?或者这是一个无法实现的目标?通过最优,我的意思是任何序列同样可能并且独立于过去或未来的结果.

我对算法感兴趣,而不是宇宙背景采样设备或其他物理"随机性"来源(它是随机的还是复杂的?)

theory random algorithm numbers

9
推荐指数
3
解决办法
2065
查看次数

您能否使用Div by Zero检测附加到您的流程的调试器

通过使用高精度计时器来计算将整数除以零所需的时间,您能否检测调试器是否附加到本机Windows进程?

基本原理是,如果没有附加调试器,则会出现硬故障,由硬件处理并且速度非常快.如果附加了调试器,则会出现软故障,该故障会渗透到操作系统并最终到达调试器.这个比较慢.

c windows debugging operating-system

9
推荐指数
1
解决办法
983
查看次数

重定向根URL - IIS 7

我的网站http://ironnoob.com/forums上安装了一些论坛.

我的网站位于c:\ IronNoob,我的论坛安装在c:\ IronNoob\forums中

我想要"ironnoob.com"和"www.ironnoob.com"进行服务器端重定向到"ironnoob.com\forums".

我正在使用IIS 7,我是新手来设置这些东西,所以我甚至不知道谷歌的用途.我知道我可以使用HTML进行客户端重定向,但我知道服务器端重定向更好.我已经想出如何为IIS安装HttpRedirect模块,但如果我在我的网站的根文件夹中设置重定向到我的论坛文件夹,我在访问ironnoob.com时会收到循环重定向错误.

HTTP重定向设置:

  1. 在ISS的"连接"窗格中选择的根目录
  2. 选中"将请求重定向到此目标"
  3. destination = http://somesite.com/forums
  4. 选中"将所有请求重定向到确切位置"
  5. 选中"仅将请求重定向到此目录中的内容(不是子目录)"
  6. 状态代码:永久(301)

当我告诉它不要时,为什么要重定向子目录?这样做的正确方法是什么?

windows iis url-rewriting http-redirect

9
推荐指数
1
解决办法
2万
查看次数

在C#中表示键入的N元组

List<struct {string, string, double} > L = new List<struct {string, string, double}>;
L.Add({"hi", "mom", 5.0});
Run Code Online (Sandbox Code Playgroud)

在C#中获取此功能的最佳方法是什么?我想动态定义一个强类型元组(用于本地函数),将一堆它们保存在列表中,进行一些处理并返回结果,再也不要再触摸列表.

我实际上并不关心强类型,但是vars列表不起作用.我想要一个对象列表吗?这是我能得到的最接近的吗?

为临时数据结构定义结构或类似乎对我来说是冗长和迂腐的.

.net c# generics coding-style

8
推荐指数
2
解决办法
898
查看次数

有/想要列表匹配算法

有/想要列表匹配算法

我正在一个高流量的网站上实施一个项目交易系统.我有大量用户,每个用户都维护一个特定项目的HAVE列表和WANT列表.我正在寻找一种算法,这将允许我根据您的HAVE和WANT匹配他们有效地建议贸易伙伴.理想情况下,我希望找到具有最高互相交易潜力的合作伙伴(即我有很多你想要的东西,你有很多我想要的东西).我不需要找到全局最高潜力对(听起来很难),只需找到给定用户的最高潜在对(或者甚至只是一些高潜力对,而不是全局最大对).

例:

User 1 HAS A,C WANTS B,D

User 2 HAS D WANTS A

User 3 HAS A,B,D WANTS C

User 1 goes to the site and clicks a button that says 
  "Find Trading Partners" and the top-ranked result is
   User 3, followed by User 2.

复杂性的另一个来源是项目具有不同的值,并且我希望匹配最高价值的交易,而不是两个交易者之间的最多匹配.因此,在上面的示例中,如果所有项目都值1,但A和D都值10,则用户1现在与用户3上方的用户2匹配.

一种天真的方法是计算寻找合作伙伴的用户与数据库中所有其他用户之间的最大交易价值.我正在考虑一些关于正确事情的查找表,我可能会做得更好.我试过谷歌搜索,因为这似乎是一个经典问题,但我不知道它的名称.

任何人都可以推荐一个解决这个问题的好方法吗?我已经看到像Magic Online Trading League这样的网站似乎可以实时解决它.

algorithm

7
推荐指数
1
解决办法
1469
查看次数

在MVC 5中构建动态JSON响应 - 如何处理结果集的属性?

我将一个对象数组返回到一个页面,该页面基于相册呈现幻灯片.

我从数据库中取出我的照片.

因此,在我返回此数组之前,我想介绍一个"Thumbnail"url属性.AlbumPicture中不存在此属性,但我想在响应中使用它.

这说明了这个想法:

List<AlbumPicture> pics = db.AlbumPictures.Where(p => p.AlbumID == album.ID).OrderBy(p => p.RankOrder).ToList();
foreach(AlbumPicture p in pics)
{
    p.AddPropertyThatDoesntExist("Thumbnail", ThumbManager.GetThumb(p.ID));
}

return Json(pics, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)

将此JSON字段添加到结果集的最优雅方法是什么?

这个问题非常基本,可能是重复的.但是,我用Google搜索了10分钟,只能找到依赖于第三方库的janky解决方案.我对目前的"最佳实践"感兴趣.

可能重复:如何从控制器向Json响应动态添加更多属性.但是,该答案将在生成的JSON中将动态添加的字段(而不是兄弟)添加到我的AlbumPicture属性中.

c# asp.net-mvc json

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

为什么INTERSECT和嵌套的JOIN一样慢?

我正在使用MS SQL.

我有一个巨大的表与索引来快速查询:

select userid from IncrementalStatistics where
IncrementalStatisticsTypeID = 5 and
IncrementalStatistics.AssociatedPlaceID = 47828 and
IncrementalStatistics.Created > '12/2/2010
Run Code Online (Sandbox Code Playgroud)

它在不到1秒的时间内返回.该表有数十亿行.只有大约10000个结果.

我希望这个查询也能在大约一秒钟内完成:

select userid from IncrementalStatistics where
IncrementalStatisticsTypeID = 5 and
IncrementalStatistics.AssociatedPlaceID = 47828 and
IncrementalStatistics.Created > '12/2/2010'

intersect

select userid from IncrementalStatistics where
IncrementalStatisticsTypeID = 5 and
IncrementalStatistics.AssociatedPlaceID = 40652 and
IncrementalStatistics.Created > '12/2/2010'

intersect

select userid from IncrementalStatistics where
IncrementalStatisticsTypeID = 5 and
IncrementalStatistics.AssociatedPlaceID = 14403 and
IncrementalStatistics.Created > '12/2/2010'
Run Code Online (Sandbox Code Playgroud)

但它需要20秒.所有单个查询都需要<1秒,并返回大约10k的结果.

我希望SQL内部将每个子查询的结果抛出到哈希表中并进行哈希交集 - 应该是O(n).结果集足够大以适应内存,因此我怀疑这是一个IO问题.

我编写了一个备用查询,它只是一系列嵌套的JOIN,这也需要大约20秒,这是有道理的.

为什么INTERSECT这么慢?它是否在查询处理的早期阶段缩减为JOIN?

sql algorithm join query-optimization intersect

6
推荐指数
1
解决办法
4755
查看次数

SQL提示在执行之前将整个表加载到RAM中?

我正在OLAP环境中的一些非常大的表上运行一些聚合查询.我目前受到磁盘IO的瓶颈,速度为200 MB/s.

我正在使用92 GB RAM的机器上进行这些查询.是否有任何SQL提示我可以写入我的查询,基本上告诉SQL在执行之前将整个表加载到RAM中?

就像是:

从myTable中选择*(ramdisk)

我正在使用MS TSQL.

sql sql-server olap ramdisk sqlperformance

6
推荐指数
1
解决办法
2224
查看次数

在给定完整历史的情况下计算团队赢得体育比赛的几率的算法

假设:

  • 球队永远不会改变
  • 团队的技能没有提高
  • 每个团队对其他团队的一部分表现的整个历史是众所周知的
  • 团队之间的比赛数量很大,但可能很少(每支球队都没有参加过其他球队比赛)

例如:

我有一长串匹配结果,如下所示:

Team A beats Team B
Team B beats Team A
Team A beats Team B
Team C beats Team A
Team A beats Team C
Run Code Online (Sandbox Code Playgroud)

问题:

预测任何球队击败任何其他球队的正确投注赔率.

在上面的例子中,我们可能得出结论,A应该在66%的时间内击败B. 这是基于直接观察,非常简单.然而,找到C击败B的概率似乎更难.他们从来没有在一起比赛,但似乎很可能C> B,但信心不足.

研究我做了:

我已经阅读了一些关于技能游戏的不同排名系统,例如国际象棋的Elo和Glicko评级系统.这些因素不足,因为他们对所涉及的概率分布做出了假设.例如,Elo的核心假设是每个游戏中每个玩家的国际象棋表现是一个正态分布的随机变量.但是,根据维基百科,还有其他发行版更适合现有数据.

我不想假设分发.在我看来,手头上有10,000多个匹配结果,我应该能够从证据中推断出分布(我不知道该怎么做),或者使用某种不关心的强化学习方案分布是什么.

algorithm math statistics game-theory

6
推荐指数
1
解决办法
2万
查看次数

在MVC控制器操作中获取POST请求的主体

我有一个WebJob,它将JSON对象发布到我的MVC网站中的控制器.

默认的ModelBinder在此实例中无法正常工作.我很乐意自己处理序列化,而不是对活页夹进行故障排除.

如何从我的控制器Action获取POST请求的主体,以便我可以将其提供给JSON.net?

我尝试在Request.InputStream上使用StreamReader,但是我得到一个空字符串.

asp.net-mvc asp.net-mvc-4

6
推荐指数
1
解决办法
8923
查看次数