如何将1到10之间的值随机化以获得真实的评级?

Ric*_*ral 5 php random numbers

我有一个电影数据库,我需要填充数据,以便更容易测试和开发应用程序.有用于保存电影评级和用户帐户的表格,用户评价电影.

我已经开始开发一个脚本,用虚假和通用数据填充数据库,但我不知道如何随机化评级.对于每部电影,我选择随机数量的用户,100,500,1000,等等.并且对于每个用户,我将评级从1到10随机化.但是这些评级导致相同的平均值,大约为5.这意味着特定电影的评级(1到10)的分布基本相同.这根本不是"现实的",因为所有具有这样生成的评级的电影都具有相同的平均值,因此来自不同用户和不同用户数量的相同评级并不重要.

我希望电影A平均为7,电影B平均为5,电影C平均为8等等......但我不希望每部电影的平均值都不同.我的意思是,产生这样的评级(对于特定数量的用户)会很好:http: //www.imdb.com/title/tt1046173/ratings或者这个http://www.imdb.com/title/ tt0486640 /评级

你知道,随机的东西可以产生两种不同的变化,如上所述.我点击刷新,我得到第一个图表,我点击刷新并得到第二个,再次点击并获得不同或类似的东西,"随机"和"现实"的东西.

我也将在我的应用程序上显示这样的图形,所以有不同的发行版会很好看.但我不知道如何通过一个简单的脚本随机完成这一任务来生成所有这些.

我怎么解决这个问题?也许这太多的工作不值得了?

也许更简单的事情,比如选择一个点(1到10之间),然后创建一个正常的评级分布,其中所选择的点是最高点,这对我有用.

Ken*_*ker 4

您想要修复均值,可能还有方差,并围绕这些值生成随机数。

这应该可以帮助您开始: 生成具有已知均值和方差的随机数

编辑:实际上,如果你仔细想想,这很容易解决:你的数字趋向于 5 的原因是因为你的规模在 1 到 10 之间(所以平均值是 5)。

只需将随机数全部加上 8,然后将任何大于 10 的数字四舍五入到 10,您就会得到以 8 左右为中心的值(但偏向上方)。也许足以满足您的目的?