我想给出一个具体的答案,但我需要帮助来了解您的思考过程…
您首先编写:
问题在于,后来添加到数据库中的汽车与先前添加的汽车获得相同分数的机会较小。
但是然后您继续写作:
当70%的汽车有1分,20%的汽车有2分,10%的汽车有3分时,随机分数应该选择70%的汽车有1分,20%的有2分和10%的3分。
恕我直言,您真正想要的是让用户在每辆汽车上拥有相同数量的投票机会。或更准确地说,是将每辆车投票给对方。
如果您假设(汽车)变量是独立的,那么您需要计算一个选择出现的次数,而不是该选择被投票的次数,并相应地调整决策过程。这是一个数学问题,不是那么丑陋,然后可以将它翻译成sql变得更好或更坏- 我敢冒险,情况可能会变得更糟。
如果您像我一样假设它们不是独立的,则还需要考虑相关性,并存储它们相互提出多少次。因为,那么,您将无限可能会选择奔驰而不是塔塔,新凯或AvtoVAZ。但是,如果要在相同的梅赛德斯,宝马,保时捷和法拉利之间进行选择,这一决定可能不会那么明确。
换句话说,您的规范根本无法解决问题。
我目前希望同意两个小时前发布的答案:随机选择它们,而无需额外的代码,您会感到满意…
附带说明一下,如果您的ID确实没有空格,请在PHP或其他任何方式中生成四个ID,然后使用一条in()
语句获取它们。您将不会比这更有效率。