csharp高级练习题:平衡比率【难度:3级】:
说明:
你运行一个工厂产生了许多不同的项目对特定消费者.消费者提供了他们想要的不同种类的项目之间保持比例,以及他们各自拥有目前的数量.你的任务是要确定你应该创建,使他们尽可能接近它们的期望比哪个项目.
规格:
我们将为您提供一个整数的两个数组:desiredRatio和actualStock.你需要返回的项目的索引下一步要生产带来的项目之间的比例在actualStock尽可能接近的desiredRatio.所有的生产在时间内完成一个项目.如果actualStock已经匹配的比例恰好返回-1.
所述actualStock到desiredRatio的接近度是通过在百分比差来确定.参阅下面的示例计算.如果你能产生一个以上的项目将带给你同样接近desiredRatio,回报最低的指数之间的平等选项. (例如,如果根据项目5或7既能带给你同样接近,返回5).
传递到下个产品()方法中的所有数据将是有效的 - 的期望的和实际数组大小将是相同的,也不将永远是空的.
例:
为您提供了[3,1,1]期望的比例 - 这就是说,每三个项目0的,你需要有第1项的1和第2项.例如1,如果实际的股票分别为[ 6,2,2]或[9,3,3]你就必须精确匹配.
鉴于这种比率,则也设有的[6,2,1]的实际的库存.有三个项目你可能产生:0,1,和2.对于这些相比,所需比率的比例,我们可以计算每个百分比.
[3,1,1]变为[60%,20%,20%]
7,2,1变成[70%,20%,10%]
6,3,1变为[60%,30%,10%]