• Herzlich Willkommen!

    Nach der Schließung von inDiablo.de wurden die Inhalte und eure Accounts in dieses Forum konvertiert. Ihr könnt euch hier mit eurem alten Account weiterhin einloggen, müsst euch dafür allerdings über die "Passwort vergessen" Funktion ein neues Passwort setzen lassen.

    Solltet ihr keinen Zugriff mehr auf die mit eurem Account verknüpfte Emailadresse haben, so könnt ihr euch unter Angabe eures Accountnamens, eurer alten Emailadresse sowie eurer gewünschten neuen Emailadresse an einen Administrator wenden.

Wie funbktioniert ein Zufallsgenerator?

CL20

Guest
Moinsen
Die Suchfunktion hat nix passendes hier ausgespuckt drum mach ich mal nen Thread -

Ständig ist davon die rede, dass z.b. Items "zufällig" droppen. Nun kann der Computer ja aber nur berechnen und nicht wirklich zufällig entscheiden. Ich geh mal davon aus dass hier bestimmt wer nen plan von sowas hat ;) und mir das ein wenig näher bringen kann wie so ein zufallsgenerator in nem programm funktioniert...

mfg
 
Ein Zufallszahlengenerator ist eigentlich nie wirklich zufällig, v.a. nicht wenn er auf binären Systemen (Rechnern) basiert. Da diese nur 0 und 1 können, müssen sie andere Tricks benutzen. Unix zum Beispiel benutzt einen Generator, der aus einem willkürlichen parameter, der sich laufend ändert, einen Startwert für den Zufallsgenerator erstellt. Normalerweise wird für den Startwertgenerator die aktuelle Systemzeit angegeben, da sich diese ja immer ändert.
Mit diesem Startwert wird dann in eine Mathematische Funktion gesprungen, die aufgrund des Startwertes verschiedene "Zufallszahlen" berechnet (im Normalfall zwischen Null und Eins, d.h. das System multipliziert das Ergebnis nachher so, dass es brauchbar wird; bei 0,035 wird zum Beispiel mit 1000 multipliziert, so dass 35 rauskommt; es können auch Zahlen abgeschnitten werden). Welcher Mathematische Algorithmus verwendet wird, ist von Generator zu Generator verschieden, da gibts etliche. Nichts desto trotz sind diese Zahlen an sich nicht wirklich Zufällig, aber für die notwenidige Genauigkeit eines Computerspiels absolut hinreichend.

Wirklich annähernd zufällig verteilt sind Generatoren, die sich die kosmische Hintergrundstrahlung zunutze machen, da diese die bestmögliche statistische Verteilung aufweist. www.random.org ist zum Beispiel ein Generator, der sich auf die Flagge schreibt, darauf zurückzugreifen - ob das stimmt und wie gut das umgesetzt wurde kann ich natürlich nicht sagen.

Hoffe geholfen zu haben.

Gruß Bloody


€: Na toll, da schreib ich mir die Finger wund und dann kommt drago und postet nen Link - Frechheit! :motz:
 
Lass dir nix einreden von wegen "mathematische Funktion" und so.

In Wahrheit gibt's bei Blizzard eine "Zufallsabteilung", da sitzen ca. 20 Mitarbeiter und würfeln den ganzen Tag Zahlen aus, die dann in die Server eingetippt werden. Daher kommt auch das Lag: wenn mehr Items droppen sollen als Zufallszahlen erwürfelt wurden, dann muss der Spieler eben ein Momentchen warten :rolleyes:

=> weniger MF-Runs = weniger Lag :autsch:
 
Agasinika schrieb:
Lass dir nix einreden von wegen "mathematische Funktion" und so.

In Wahrheit gibt's bei Blizzard eine "Zufallsabteilung", da sitzen ca. 20 Mitarbeiter und würfeln den ganzen Tag Zahlen aus, die dann in die Server eingetippt werden. Daher kommt auch das Lag: wenn mehr Items droppen sollen als Zufallszahlen erwürfelt wurden, dann muss der Spieler eben ein Momentchen warten :rolleyes:

=> weniger MF-Runs = weniger Lag :autsch:

*lol* :D Der is gut
 
Agasinika schrieb:
Lass dir nix einreden von wegen "mathematische Funktion" und so.

In Wahrheit gibt's bei Blizzard eine "Zufallsabteilung", da sitzen ca. 20 Mitarbeiter und würfeln den ganzen Tag Zahlen aus, die dann in die Server eingetippt werden. Daher kommt auch das Lag: wenn mehr Items droppen sollen als Zufallszahlen erwürfelt wurden, dann muss der Spieler eben ein Momentchen warten :rolleyes:

=> weniger MF-Runs = weniger Lag :autsch:

Ich dachte die 20 suchen sich immer einen Server aus (Lose aus dem Hut ziehen), dann würfeln sie aus wer dran ist die Münze zu werfen. Kopf bedeutet Lag und Zahl Megalag mit Rollback :clown:
 
SantasClaws schrieb:
Ich dachte die 20 suchen sich immer einen Server aus (Lose aus dem Hut ziehen), dann würfeln sie aus wer dran ist die Münze zu werfen. Kopf bedeutet Lag und Zahl Megalag mit Rollback :clown:

Und wenn sie auf der Kante stehen bleibt gibt's n Worldevent ;)

Gruß Bloody
 
um noch irgendwas über die uniqueberechnung rauszufinden kannst du dir das hier mal ansehen (den Anhang, nicht den Guide selbst)

ich quote einfach mal was ich meine, ist allerdings in der darstellung nicht so schön :D
Let's see how the game use this : when a drop occurs, the game follows the TC until getting a base object. For exemple a "skull cap". Then it test if the item become unique/set/rare/.../Low quality.
For this it uses the proper line of ItemRatio.txt, the MF bonus of the character who made the drop (character + minion if a minion killed the monster), and the maximum values of unique/set/magic/rare crossed while following TreasureClassEx.txt (the maximum value, not the first seen, not the last non null, not the sum, ... Heavily tested by Paul).

The game decides the quality of item (unique/.../lowquality) by first testing if it is unique, if not it tests if it is rare, if not ..., and if all fail the item of "low quality".
The order is :
Unique > Set > Rare > Magic > Hi quality > Normal > Low quality

the unique test :
The base probability of being unique is probability = 1 / Unique, Unique taken from ItemRatio.
Then this base chance is decreased by (MonsterLvl - QualityLvl) / UniqueDivisor , where QualityLvl is the level read in armor/misc/weapons.
Now this value is multiplied by 128 (some extra precision).
And comes the effect of EMF (MF with diminushing return) : chance = chance * 100 / (100 + EMF) .
Chance is compared with UniqueMin from ItemRatio.txt (so note that XXXmin is in essence 128 time bigger than XXX).
And finally the TC bonus is applied : chance = chance - (chance * unique_factor) / 1024 , where unique_factor is the maximum value of "unique" seems in TreasureClassEx.txt.
Now the games picks a random number between 0 and chance-1. If this random number is less or equal than 127, the objet is unique.

Same procedure is used (but with different diminushing return) for set/rare/magic tests.
And also for Hi quality/normal, but without MF, without XXXmin, and without XXX_factor.



A notes on XXXDivisor :
Well mishy23 explained it very well so I'll just be lazy and quote him :



Just to expand on RareDiv,
When it comes to determining what rarity(magic/rare/unique) item is,
the difference in itemlevel (qlvl) and monsterlevel (mlvl) make a large difference in overall determination.
Thats why its easier to get magic items and higher on lower level items, then it is on higher level objects.
This is why you usually see white items first when new itemtypes become available, and magic versions dont drop with much regularity until after your fighting higher level monsters.

As Ulmo said (MonsterLvl - Qlvl) / UniqueDivisor is the formula,
so the if a very high level monster drops a very low level base item,
well this raisies chance item can be magic, rare, etc...
while if a medium level monster drops a medium level base item, well that difference is very small and the chance to get magic, rare, etc...is not modified very much at all.

RareDiv, makes this level difference between monster and item its dropping matter less the higher the div is.

Div does not in itself divide the overall chance for dropping magic, rare, unique, just the modification of this chance by the monsterlvl-itemlvl curve.





Also, you can think of XXXmin as a way to counter too high values of MF.



Effective MF formulae :
For magic, it is just EMF = MF
For Rare/Set/Unique, Diminushing return is only used if MF > 10. In this case, EMF = MF*X/(MF+X) , i.e. going slower and slower from 0 to X. With X = 250 for uniques, X = 500 for Sets, and X = 600 for Rares.

Exemple :
A ring (qlvl = 1) dropped by Andarielle in hell (Mlvl = 78) with +300% MF (I use here the QuestDrop).



So base chance is 400, then becomes 400 - (78 - 1)/1 = 323
extra-precision : chance = 323*128 = 41344
MF : chance = 41344 * 100 / (100 + 136) = 17518
UniqueMin is lower than chance and is ignored.
for Andarielle questdrop in hell (TC = "Andarielq (H)"), Unique_factor = 995
So chance = 17518 - (17518 * 995) / 1024 = 496
This means 128/496 = 25.81% chances of being unique.

für weitere infos zum drop kannste mal das stratarchiv oder den wegweiser durchforsten

und da das ganze wohl oder übel eher ne dropfrage zu d2 spezifischem zufall ist werd ich das mal ins strat schupsen, so ganz ot ist das ja nicht hier...

und spam gefälligst in grenzen halten :p
 
dilbert2001182781025.gif


edit: Ey! Eben war das noch OT :(
 
Bloodcyclon schrieb:
Und wenn sie auf der Kante stehen bleibt gibt's n Worldevent ;)

Gruß Bloody

...oder man entschließt sich, diablo 3 zu machen^^

THNX für die Antworten, gibt also doch keine Zufälle :cry:
Vielleicht braucht man ja für diablo 4 dann en Empfänger für die Hintergrundstrahlung damit das alles ganz korrekt chaotisch ist...
 
s gibt zwar per Computer meist keine "echten" Zufälle, aber das, was der so generiert, ist für Spielzwecke "zufällig genug" und gehorcht im Wesentlichen sogar den typischen Gesetzen der Wahrscheinlichkeitsrechnung. Von daher ist es nicht wirklich ein Problem, solange der verwendete Generator gut gemacht ist.
 
Zurück
Oben