2

我有大约 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...

这是直截了当的......而且它是线性的,没有“票证”方法,这里一个人回答了 1 个问题,作为回答所有 24 个问题的人的确切获胜百分比......

我将如何去尝试彩票方法,下一步应该是什么?

无需向我展示代码,我可以得到,只有步骤,因为我没有以某种方式得到它们。

4

2 回答 2

1
  1. 创建一张彩票表。
  2. 对于每个订阅者,对于他们正确的每个问题,将他们的条目放在表中一次。
  3. 从该表中随机选择一条记录。
于 2012-12-25T12:14:21.103 回答
0

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

编辑

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

如果您对它的工作方式有不同的想法,请告诉我。

于 2012-12-25T12:12:10.990 回答