与えられた数値の中から最小値を見つけ、数値内の最小値の位置を取得します。
- 複数の数値に重複する値がない場合は、これらの数値を格納するリストを走査するだけで済みます。
- 複数の数値に重複する値がある場合、現在の最小値の位置
MinIndex
を。トラバーサル プロセス中に最小値が変更された場合は、クリアMinIndex
して新しい最小値の位置を追加する必要がありますMinIndex
トラバース処理時 に最小値の繰り返し値がある場合は、その値MinIndex
埋めるの。
public static List<int> FindMin(List<float> NumList)
{
List<int> MinIndex = new List<int>() {
0 };
float MinNum = NumList[0];
for (int i = 1; i < NumList.Count; i++)
{
if (MinNum > NumList[i])
{
MinNum = NumList[i];
MinIndex.Clear();
MinIndex.Add(i);
}
else if (MinNum == NumList[i])
{
MinIndex.Add(i);
}
}
if (MinIndex.Count > 1)
{
System.Random rand = new System.Random();
List<int> RandList = new List<int>();
foreach (int i in MinIndex)
{
RandList.Insert(rand.Next(RandList.Count), i);
}
return RandList;
}
else
{
return MinIndex;
}
}