适用于iOS的SQLite - RANDOM()还不够好

时间:2012-06-06 13:59:11

标签: c# objective-c sqlite random xamarin.ios

我正在开发一个iOS文字游戏,它是围绕从SQLite数据库中提取随机单词而构建的。

所以我有一张桌子,单词,我拉出X个随机单词,如下:

SELECT Word FROM (SELECT Word FROM Words ORDER BY RANDOM() LIMIT @limit) ORDER BY LENGTH(Word)

问题是我的测试版用户抱怨它不够随机。它似乎从很多时候拉出相同的单词,而从来没有说过一些单词。

是否有替代我正在做的事情?我知道SQLite的RANDOM()可能不是最好的。我不想在内存中加载所有单词,因为有超过3,000个。

PS - 我的应用程序是使用MonoTouch在C#中构建的,但我可以肯定地使用Objective-C(甚至伪代码)答案

1 个答案:

答案 0 :(得分:2)

也许是因为你订购了它们?您选择一个随机排序的单词列表,然后您执行另一个选择并按字长排序此结果。第二次排序可能会搞乱您的随机化。我会把它分开,取决于你在游戏中需要的单词,使长度为where子句,或者首先选择长度并随机化这些列表?