彩票方法

本文关键字:方法 彩票 | 更新日期: 2023-09-27 17:49:40

我有大约100万条记录,这些记录是在24天内(每天一个)回答问题的。

我想要完成的是收集所有正确的答案,然后进行抽奖选择,就像如果一个订阅者正确回答了所有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个条目,我就有更大的机会得到正确答案。这将使我的方法有效。

如果你有不同的想法,请告诉我。