繁体   English   中英

彩票方式

[英]Lottery ticket approach

我有大约1百万条记录,女巫在24天(每天1个)中回答问题。

我要完成的工作是全天收集所有正确答案,然后进行抽签选择 ,例如, 如果订户正确回答了所有24个答案,那么他/她的选择概率要比仅正确回答一个的订户更高回答

我正在使用Linq-to-Sql,因为我更愿意使用它,而不是纯粹的T-SQL,尽管这是要移植到T-SQL,但是LinqPad可以帮助我,所以这就是我到目前为止:

// all correct answers id's
var correct = from a in JK_ChallengeAnswers
              where a.correct
              select a.challenge_answer_id;

// all correct answers 
var query = from cr in JK_ChallengeResponses
            where correct.Contains(cr.challenge_answer_id)
            select cr;

query.Count().Dump(); // 978144

var random = new Random();
int pos = random.Next(query.Count()); // random select

query.Skip(pos).Take(1).Dump(); // get one...

这是直截了当的……而且是线性的,没有“票务”方法,这里的人回答了一个问题,即回答了全部24个问题的确切比例。

我将如何尝试彩票方法 ,下一步应该怎么做?

无需显示代码,我可以得到这些,只有步骤可以了,因为我不知道如何得到它们。

  1. 创建一张彩票表。
  2. 对于每个订阅者,对于每个正确的问题,将其条目一次放入表中。
  3. 从该表中随机选择一条记录。

创建一个视图,其中包含正确回答的所有人员的姓名。 然后,您可以使用随机数生成器来选择其ID与随机数匹配的人。 如果您需要更多帮助,请问我。

编辑

对我来说,彩票方法已经为您服务,因为每个人每天都可以猜测24天的答案。 这意味着他们在您的表中有24个答案,外键指向正确的答案。 通过这样做,如果我将24个条目提交到数据库中,则我更有机会获得正确答案。 这将使我的方法起作用。

让我知道您是否对此有不同的想法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM