配列を X 個の新しい配列に均等に分散する方法を作成しようとしています。ここでは、配列ごとに 15 項目しか許可されておらず、前の項目が 10 個の場合を除き、新しい配列を作成することのみが許可されています。配列の項目が 10 未満です。
編集
私の質問を将来の読者にとってより理解しやすくするために。
- これは生地と同じです。
- X 個の製品をビルドする必要があります。
- 1 つの製品を従業員のために構築するには T の量が必要です。
従業員は何人必要で、従業員間で作業負荷をどのように分担していますか?
編集終了
Max allowed number in array = 15;
Min allowed number in array = 10;
Number = Numbers of Items in the Collection.
Number 5 => [5]
Number 13 => [13]
Number 16 => [10] [6]
Number 29 => [15] [14]
Number 30 => [15] [15]
Number 31 => [11] [10] [10]
Number 32 => [12] [10] [10]
Number 33 => [11] [11] [11]
これをC#で解決しようとしています。
これはこれまでの私のコードですが、16 = [16]、29 = [19] [10]、38 = [18] [10] [10] のような数字で失敗します
const int maxAllowedOrderLines = 15;
const int minAllowedOrderLines = 10;
var optimalOrderDisp = new List<int>();
Console.WriteLine("Number of OrderLines");
int linjer = Convert.ToInt32(Console.ReadLine());
if (linjer <= maxAllowedOrderLines)
optimalOrderDisp.Add(linjer);
else
{
for (var i = maxAllowedOrderLines; i > 0; i--)
{
var maxOrderLines = linjer%i;
if (maxOrderLines == 0 || i <= minAllowedOrderLines || linjer < maxAllowedOrderLines)
{
Console.WriteLine("Optimal number of order lines {0}--{1}", i, (double) linjer/(double) i);
var optimalNumberOfOrders = linjer/i;
for (var orderNumber = 0; orderNumber < optimalNumberOfOrders; orderNumber++)
{
optimalOrderDisp.Add(i);
}
if (maxOrderLines != 0)
optimalOrderDisp[0] += maxOrderLines;
break;
}
}
}
foreach (var i1 in optimalOrderDisp)
{
Console.Write("[{0}]", i1);
}
Console.WriteLine();