【问题标题】:How to make the probabilities of each online answer in quiz game? -SQL DataBase问答游戏中如何计算每个在线答案的概率? -SQL 数据库
【发布时间】:2017-04-15 15:53:51
【问题描述】:

我正在使用 Unity 开发一款适用于 Android 的问答游戏。该游戏基本上向玩家展示问题及其各自的答案。这些问题和答案存储在 SQL 数据库中。游戏从数据库中获取数据并将其展示给玩家。

好吧,一旦玩家回答了一个问题,我想告诉他到目前为止有多少选择的百分比有每个答案。我的意思是,到目前为止,世界上有多少人选择了该问题的每个答案。 例子: 问题 A -> 答案 B (25%) 答案 C(25%) 答案 D(50%) 答案 E(0%)

我这样做的主要想法是存储每个答案的选择次数和播放该问题的总次数。然后我可以使用这个公式找到每个答案的百分比: 答案 B 的概率 -> 答案 B 的选择次数/玩家玩过该问题的所有时间的总和。

我不知道我是否可以将所有这些数据存储在一个 sql 表中,因为回答问题的次数会一直增加。也许有另一个公式可以做到这一点。

我不知道这是否是存储数据以进行概率运算的最佳方式。我只是需要一个更好的主意来做到这一点。

关于游戏的一些注意事项: -如果玩家解决了 2 次或更多问题,我想将所有这些都考虑到概率公式中。 -我想将所有在线数据存储在 SQL 数据库中

任何想法都会有所帮助。 谢谢。

【问题讨论】:

    标签: sql database store probability


    【解决方案1】:

    您的方法基本上是正确的,但我不会存储明确给出的答案总数。只需存储每个问题给出的答案数量,并在需要时计算给出的答案总数 - 这样您就不需要一直更新总和,也不会出现数据不一致的情况。

    这可以例如以 QuestionID 和 AnswerID 作为键存储在单个表 AnswersGiven(QuestionID, AnswerID, TimesSelected) 中。每次有人选择问题时更新 TimesSelected。

    或者,您可能想要跟踪其他数据,例如哪个用户给出了答案。然后您需要运行计数查询以获取给出的答案数量,但如果需要,您可以运行进一步分析(例如给出的答案之间的相关性)。

    【讨论】:

    • 感谢您的回答。是一个很好的 Idea 将数据存储在表 AnswersGiven(QuestionID, AnswerID, TimesSelected) 中。但是“TimesSlected”字段会随着时间的推移而增加,因此可能会出现溢出。 ¿ 如何解决这个可能的溢出问题? ¿TimesSelected 必须是“INT”类型的字段?再次感谢。
    • 如果你使用 32 位整数,你需要至少 20 亿人回答一个问题,然后才会遇到溢出。不要过于悲观,但我怀疑你的应用程序会达到这么多。如果您使用 64 位整数,即使地球上的每个人在一百万年内每天都回答每个问题,您也不会溢出。
    猜你喜欢
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多