我想创建一个游戏,让玩家创造不同价格的不同产品(称之为优惠),然后我给他们一定数量的客户(称之为需求)。
现在,我想要一个算法来决定每个玩家的市场份额。当然,我现在可以随意使用。但在此之前,我更愿意问,因为我确信很多人已经尝试过在我面前这样做了!
我的问题不是很精确,这是因为你的答案也不需要精确;)
提前谢谢!
答案 0 :(得分:3)
这实际上取决于您设置的变量以及您想要创建的“市场”类型。你可以从下面的以下简单公式开始(从根本上将市场份额降低到利润问题)作为一个开始,我将通过我所说的“市场”来理解。
marketShare = totalCompanyProfit/allMoneyInProductCategory;
marketShare = ( (productSalePrice * demand)-(productManufactureCost * supply) ) / allMoneyInProductCategory;
这里很有趣,因为“市场类型”取决于您对需求的定义。例如,假设产品是ferraris,你试图模拟的市场是刚果共和国,其人均GDP为189美元。
targetMarketSize = (percentOfFittingDemographic * totalPopulation)
percentWhoHateYourProduct = AVERAGE( ( ABS(productVariable1 - variableIdeal1) / variableIdeal1 ), ( ABS(productVariable2 - variableIdeal2) / variableIdeal2 ), etc )
demand = (targetMarketSize) * ( 1- percentWhoHateYourProduct )
percentOfFittingDemographic是适合购买此类产品的人口的百分比(即拥有足够的可支配收入以购买10万美元汽车的人),在上面的刚果例子中可能类似于.001。
某些产品属性(productVariable)与其理想(variableIdeals)之间的差异的绝对值的平均值超过其理想值,这意味着产品的百分比将被产品关闭而不是他们想要的。从1中减去想要购买产品的人的百分比,并将其乘以targetMarketSize,为您提供想要购买产品的人 - 即需求。如果产品是完美的,它将成为0的平均值,整个目标市场成为产品的用户。
还可以增加平均值的权重,例如,市场更喜欢在更大的屏幕尺寸上降低价格。意味着更多的一个属性增加了人口对产品的渴望(即代替“一个月的免费服务”,你放弃“6个月的免费服务”,人们想要更多),你可以添加它
进入平均值percentLikesProductNow = 1 - e^(-1 * infinitelyLikedAttribute)
这从无限LikedAttribute = 0的0%到infintelyLikedAttribute = 10的约0.005%,所以你可以玩并找到一种方法来“缩放”该属性大致在1到10之间。这有点像对现实生活的感觉,因为如果他们没有免费试用,我会买不到的产品。例如:3个免费月份的verizon互联网。如果我只在那里生活了6个月,我本可能会选择康卡斯特,但当时节省100美元的费用相当大。然而,在另一个极端情况下,如果verizon要为我提供100年免费互联网年限,另外50年以上(假设它不可转让等)真的不会增加更多的报价吸引力。
你总是可以将所有这些东西与随机数生成器相乘,也许会给它+/- 15%的变化,并让每个人都猜测:)
我希望这甚至非常有用:)