Ich versuche, den Rest so gleichmäßig wie möglich aufzuteilen, wobei var nicht in die Array-Anzahl teilbar ist.Teilen Sie den in var definierten Wert so gleichmäßig wie möglich in ein Array variabler Länge.
Ich habe Folgendes versucht, was mir eine abgerundete Aufteilung in den Array-Artikel gibt. Ich suche nach einer Möglichkeit, den Rest zu identifizieren und dann so gleichmäßig wie möglich in jeden Array-Indexwert aufzuteilen.
for n in ${!variableLengthArray[@]} ; do
divideCount=$((${variableLengthArray[$n]}/$var))
variableLengthArray[$n]=$(echo "($divideCount+0.5)/1" | bc)
done
Beispiel1:
Input:
var=11
variableLengthArray[0]=0
variableLengthArray[1]=0
variableLengthArray[2]=0
Ideal Output:
variableLengthArray[0]=4
variableLengthArray[1]=4
variableLengthArray[2]=3
EXAMPLE2:
Input:
var=33
variableLengthArray[0]=0
variableLengthArray[1]=0
variableLengthArray[2]=0
variableLengthArray[3]=0
variableLengthArray[4]=0
variableLengthArray[5]=0
Ideal Ausgang:
variableLengthArray[0]=6
variableLengthArray[1]=6
variableLengthArray[2]=6
variableLengthArray[3]=5
variableLengthArray[4]=5
variableLengthArray[5]=5
ich auch sein könnte, die Zuerst, um es zu sagen ... Was hast du probiert? (Und als Bonus wäre es großartig, wenn Sie "so gleichmäßig wie möglich" definieren könnten.) – jas
einige verbale Beschreibung dessen, was Ihre "Regel" ist, könnte dazu beitragen, dieses Q weniger zweideutig zu machen. Ich sehe 4 Eingänge und 3 Ausgänge. "Gleichmäßig geteilt" bedeutet für mich 2 Ausgänge. Wiederum 6 Eingänge und 6 Ausgänge, nicht 3? Und macht die erste Zeile der Eingabe, d. H. "Var = 33" Teil der Eingabe (aber nicht ausgegeben), oder was bedeutet es im Zusammenhang mit Ihrem Problem? – shellter
Entschuldigung, bitte Änderungen und Danke für Feedback – user1654528