我有一個字符年齡在幾個月的浮點數,以及具有平均身高數據的數組。使用身高數據隨機生成高度
float characterAge;
private float[,] ageHeightData = new float[217, 10] { 180.5f,149.7416f,151.2611f,153.604f,157.5271f,161.898f,166.2812f,170.2366f,172.6084f,174.1505f },
...
我想根據年齡隨機生成角色的高度。我正在使用這些來自疾病預防控制中心的年齡平均身高的圖表:here
圖表將高度降低到百分位數。
因此,對於老化的字符:180.5個月(15.5 y)時,它們的高度的平均值(以cm)被顯示爲這樣:
149.7416(3位數) 151.2611(5百分位) 153.604(10百分點) 157.5271(25百分位數) 161.898(第50百分位) 166.2812(75百分位數) 170.2366(90百分位數) 172.6084(95百分位數) 174.1505(97百分位數)
所以,161.898是真正的「平均「,149短,174是高大的,等等。 我想知道的是如何使用角色的已知年齡和這些數據以相對正確加權的方式隨機生成數字,以便如果我生成數字100次,會產生更多的「平均」高度,並且正確地具有更少的「短」和「高」高度,更少的「非常短」和「非常高」值。
幾乎看起來更適合數學堆棧交換... –
這裏可能有一些想法:http://stackoverflow.com/questions/5281672/generate-a-random-number-in-a-gaussian-範圍 – PaulF