arrayproblem mit zufallszahl

  • hallöchen, ich habe ein array, dass zwischen 3 und 12 werten groß ist.
    diese werte ergeben immer 100 (array mit 4 werten z.b. [0]= 15, [1]=50, [2]=30, [3]=5)

    bevor das array ausgelesen wird, wird eine zufallszahl erstellt 1.100.
    dannach soll das array aufgeteilt werden, dass jeder wert des arrays ein teil von 100 einnimt.
    wenn ich jetzt eine zufallszahl z.b. 12 bekomme. sagt mir die funktion, dass [0],[1],[2] mit der zufallszahl übereinstimmen.

    nagut, dass stimmt nunmal aber, es soll jedoch erreicht werden, dass z.b. bei der 12 NUR [0] als "übereinstimmender" wert des arrays ausgespuckt wird.

    ich habe mir ein paar gedanken gemacht und bin auf die lösung gekommen:
    [0]= 15, [1]=50, [2]=30, [3]=5
    $i = zufallszahl

    0-15 = $i kleiner als [0] dann [0]
    15-65 = $i zwischen [0] und [0]+[1] dann [1]
    65-95 = $i zwischen [0]+[1] und [0]+[1]+[2] dann [2]
    95-100 = $i größer als [2] dann [3]

    naja, schön und gut, so kann man es meiner meinung nach schreiben, allerdings wird es kompliziert und es schleichen sich schnell fehler ein bei einem array mit 12 werten.

    kennt ihr eine lösung, dieses problem in einer schleife zu lösen? habt ihr vielleicht eine komplett andere lösung für das problem ?

    vielen dank

  • ich denke mal Hausaufgaben für den IT- oder Matheunterricht sind dazu da sie selbst zu lösen und nicht sie von anderen lösen zu lassen.

    Bei deiner Art die Aufgabe darzustellen ist es eh schwer zu verstehen was du überhaupt willst, poste doch einfach die Originalaufgabe (C&P bzw. wörtlich abtippen).

  • Hi,

    ich würde ein Hilfsarray aufbauen, genau wie du es beschrieben hast...
    Du musst nur programmtechnisch deine Idee umsetzen.
    Bspw. so:

    Wenn man "schnell" und direkt auf den Index zugreifen möchte, könnte man ein Array von 0 bis 100 aufbauen mit dem entsprechenden Index. so daß $Index=$array0_100($Zufallszahl)
    Das macht dann Sinn, wenn man die gesuchten Indizes oft braucht.