anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 28 Mär, 2024 12:47

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Das schwarze Schaf
BeitragVerfasst: Do 08 Nov, 2007 20:08 
Offline
Freak
Freak
Benutzeravatar

Registriert: Mi 06 Jul, 2005 19:10
Beiträge: 543
Wohnort: Bremen
Geschlecht: Männlich
LoGD: http://my-logd.com/motwd
Ich möchte hier mal wieder ein kleines Special veröffentlichen.
Aber bevor nun wieder alle schreiben: "Alles nur geklaut!", stimme ich dem zu. Die grundlegende Idee und einige Texte stammen im Original von xItachix.

Mir hat das Special gefallen, nachdem mich mein Schatz darauf aufmerksam gemacht hat.

Leider war der ursprüngliche Code alles andere als "sauber", daher habe ich es komplett neu geschrieben und passend ein paar Bilder für die einzelnen Etappen angefertigt.

Einbauanleitung ist in der *.rar-Datei, entsprechend auch die Nutzungsbedingungen und Grafiken. Natürlich auch das Script.

Support gibt es keinen, brauch es auch nicht, da in der Anleitung, selbst für Dummies, alles erklärt ist.

Hier noch ein kleiner Screenshot:
Bild

Viel Spass damit....;-)


Dateianhänge:
Dateikommentar: v1.1 (08.11.2007)
motwd_bs_special.rar [62.75 KIB]
420-mal heruntergeladen

_________________
Das schwarze Schaf der LotGD-Community, 2. platzierter, beim Giga.de Homepage-Award 2007 und 1. platzierter beim German Web Award 2008.
PC-ACTION meint: "Sehr gut" für MotWD!
Mind of the White Dragon => http://my-logd.com/motwd


Zuletzt geändert von -DoM am Do 08 Nov, 2007 23:12, insgesamt 2-mal geändert.
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 08 Nov, 2007 20:19 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
*lachweg - tränen Augen hab*
Hast wirklich schön Sauber gemacht! *thumbs up* - Die Bilder haben es mir auch sehr angetan. *schwer schmunzel* - Weiter so. x)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 08 Nov, 2007 23:05 
Offline
Freak
Freak
Benutzeravatar

Registriert: Mi 06 Jul, 2005 19:10
Beiträge: 543
Wohnort: Bremen
Geschlecht: Männlich
LoGD: http://my-logd.com/motwd
Ich musste ein kleines Update nachschieben (Aktualisiert im ersten Thread).

Im Betrieb zeigte sich leider mal wieder, wie zufällig die Zufallsfunktion (e_rand) doch ist....
Einige Spieler bekamen nur ein Schaf zu Gesicht, einige um die 5-6 Schafe, aber leider auch welche die weit mehr als 30 Schafe hatten.

Mittlerweile habe ich auch gesehen, das im Originalthread der Killerhäschen, Dragonslayer auch bereits einen Hinweis einbrachte.

Das Update beinhaltet nun zwei kleine Änderungen. Zum einen, werden die Schafe von Runde zu Runde stärker, und zum anderen eine Begrenzung auf eine Maximalzahl an Schafe, die beim eintreten in das Special festgelegt wird.
Dazu ein paar kleine Details, wie zum Beispiel, die Anzahl der Schafe die bereits geschaft sind.

Zum Updaten einfach den Inhalt des Archives hochladen, wie in der Einbauanleitung angegeben, oder einfach nur das Special ersetzen...

@Kevs:
Is gut gelle...*HRHR*

_________________
Das schwarze Schaf der LotGD-Community, 2. platzierter, beim Giga.de Homepage-Award 2007 und 1. platzierter beim German Web Award 2008.
PC-ACTION meint: "Sehr gut" für MotWD!
Mind of the White Dragon => http://my-logd.com/motwd


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 09 Nov, 2007 07:31 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Auf jeden fall. =) *kicher*
Aber freunde dich bitte mit der Funktion 'mt_rand' an, die ist wesentlich effektiver, als die 'e_rand' Funktion. =) - Nur als erwähnung am Rande. Dennoch sehr ansprechend das 'Special'. Die schaffe haben es mir sehr angetan. =D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 09 Nov, 2007 11:03 
Offline
Freak
Freak
Benutzeravatar

Registriert: Mi 06 Jul, 2005 19:10
Beiträge: 543
Wohnort: Bremen
Geschlecht: Männlich
LoGD: http://my-logd.com/motwd
Meine e_rand():
[php]
function e_rand($min=false,$max=false){
if ($min===false) return mt_rand();
$min*=1000;
if ($max===false) return round(mt_rand($min)/1000,0);
$max*=1000;
if ($min==$max) return round($min/1000,0);
// if ($min==0 && $max==0) return 0; //do NOT as me why this line can be executed, it makes no sense, but it *does* get executed.
if ($min<$max){
return round(@mt_rand($min,$max)/1000,0);
}else if($min>$max){
return round(@mt_rand($max,$min)/1000,0);
}
}
[/php]
Wenn ich eine Schleife durchlaufen lasse um die Funktion zu testen, bekomme ich ein sehr ausgewogenes Ergebnis. Es ist halt wirklich nur so, dass es dennoch diese Extreme gibt. Naja ist ja jetzt umgangen, wenn auch nicht wirklich behoben.

P.S.: Es müsste auch die originale e_rand()-Funktion sein, zumindest aus der Anpera-Version.

_________________
Das schwarze Schaf der LotGD-Community, 2. platzierter, beim Giga.de Homepage-Award 2007 und 1. platzierter beim German Web Award 2008.
PC-ACTION meint: "Sehr gut" für MotWD!
Mind of the White Dragon => http://my-logd.com/motwd


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 09 Nov, 2007 13:29 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Di 23 Jan, 2007 21:12
Beiträge: 50
LoGD: http://www.verborgene-land.yourweb.de/source.php
Klasse, danke -Dom, gefällt mir gut.
Die armen, süßen Schäfchen. ;)

_________________
War ich das etwa?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 09 Nov, 2007 14:53 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Könnte gut sein - habe noch nicht genau nachgesehen. Aber gut, mh. Ansonsten würde ich Persönlich ehr mt_rand bevorzugen, ist halt effektiver. (anssichtssache) Es kommt immer auf die Nutzung dessen an.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 09 Nov, 2007 20:38 
Offline
Freak
Freak
Benutzeravatar

Registriert: Mi 06 Jul, 2005 19:10
Beiträge: 543
Wohnort: Bremen
Geschlecht: Männlich
LoGD: http://my-logd.com/motwd
Es hat mir jetzt keine Ruhe gelassen und habe mit erstaunen festgestellt, dass es gravierende Unterschiede gibt.

Was mich aber ehrlich gesagt wundert, da ich einen ähnlichen Test bereits durchgeführt hatte und keine Unterschiede feststellen konnte, aber lassen wir erstmal das Ergebnis sprechen:

$this->bbcode_second_pass_code('', '
Funktion e_rand():
Option 1: 16575 / 16.6%
Option 2: 33411 / 33.4%
Option 3: 33254 / 33.3%
Option 4: 16760 / 16.8%
Laufzeit der Schleife mit 100000 Durchgängen: 0.431644

Funktion mt_rand():
Option 1: 25054 / 25.1%
Option 2: 25270 / 25.3%
Option 3: 24833 / 24.8%
Option 4: 24843 / 24.8%
Laufzeit der Schleife mit 100000 Durchgängen: 0.132521
')
Man sieht doch recht eklatante Unterschiede, sowohl in der Verteilung und in der Laufzeit. Letztere ist aber nicht wirklich Aussagekräftig, da unser Server gerade unter stark schwankender Last läuft.

Ich werde in Zukunft nur noch mt_rand verwenden *gelernt hab - rofl*

_________________
Das schwarze Schaf der LotGD-Community, 2. platzierter, beim Giga.de Homepage-Award 2007 und 1. platzierter beim German Web Award 2008.
PC-ACTION meint: "Sehr gut" für MotWD!
Mind of the White Dragon => http://my-logd.com/motwd


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 09 Nov, 2007 21:28 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
*hrhr*
Soso. . . konnte ich doch mal 'erfolgreich' helfen. *lach* - Aber gut, dass ich dich doch noch von überzeugen konnte. *kicher - schmunzel*


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 10 Nov, 2007 01:30 
Offline
Freak
Freak
Benutzeravatar

Registriert: Mi 06 Jul, 2005 19:10
Beiträge: 543
Wohnort: Bremen
Geschlecht: Männlich
LoGD: http://my-logd.com/motwd
Es hat zwar eigentlich nur am Rande mit dem Special zu tun, aber dennoch lässt es mir noch immer keine Ruhe.

Ich habe nun mal ein wenig in den tiefen meines Roots geschaut und habe meinen ursprünglichen Test gefunden.
Diesen habe ich mal Versuchhalber laufen lassen, weil mir die e_rand()-Funktion doch ein wenig Spanisch vorkam.

Bei dieser Art des Einsatzes läuft es seltsamer Weise korrekt.

Hier der Schnipsel und das Ergebnis:
[php]
$gut1 = 0;
$gut2 = 0;
$gut3 = 0;
$gut4 = 0;
$bad1 = 0;
$bad2 = 0;
$bad3 = 0;
$bad4 = 0;
$bad5 = 0;
$bad6 = 0;
$bad7 = 0;
$bad8 = 0;
for ($i = 0; $i < 100000; $i ++){
$zufall = e_rand(1,1000);
switch (true){
case ($zufall >= 300 && $zufall <= 700):
switch (true){
case ($zufall >= 600):
$gut1 ++;
break;
case ($zufall >= 500):
$gut2 ++;
break;
case ($zufall >= 400):
$gut3 ++;
break;
case ($zufall >= 300):
$gut4 ++;
break;
}
break;
case ($zufall < 300 || $zufall > 700):
switch (true){
case ($zufall >= 925):
$bad1 ++;
break;
case ($zufall >= 850):
$bad2 ++;
break;
case ($zufall >= 775):
$bad3 ++;
break;
case ($zufall >= 701):
$bad4 ++;
break;
case ($zufall >= 225):
$bad5 ++;
break;
case ($zufall >= 150):
$bad6 ++;
break;
case ($zufall >= 75):
$bad7 ++;
break;
case ($zufall >= 1):
$bad8 ++;
break;
}
break;
}
}
[/php]
Ergebnis:
$this->bbcode_second_pass_code('', '
Der Test bei 100000 Durchläufen ergab:
Gut 1: 10164 / 10.2%
Gut 2: 10035 / 10%
Gut 3: 9994 / 10%
Gut 4: 9982 / 10%
Gesamt Gut: 40.2%

Schlecht 1: 7436 / 7.4%
Schlecht 2: 7607 / 7.6%
Schlecht 3: 7396 / 7.4%
Schlecht 4: 7435 / 7.4%
Schlecht 5: 7500 / 7.5%
Schlecht 6: 7564 / 7.6%
Schlecht 7: 7449 / 7.4%
Schlecht 8: 7438 / 7.4%
Gesamt Schlecht: 59.8%
')

Und hier der Schipsel vom dem Ergebnis, was 2 Posts höher zu finden ist:
[php]
$loops = 100000;
$option_1 = 0;
$option_2 = 0;
$option_3 = 0;
$option_4 = 0;
$time1 = microtime();
for ($i = 0; $i < $loops; $i ++){
switch (e_rand(1,8)){
case 1:
case 5:
$option_1 ++;
break;
case 2:
case 6:
$option_2 ++;
break;
case 3:
case 7:
$option_3 ++;
break;
case 4:
case 8:
$option_4 ++;
}
}
$time2 = microtime();

$option_1 = 0;
$option_2 = 0;
$option_3 = 0;
$option_4 = 0;
$time1 = microtime();
for ($i = 0; $i < $loops; $i ++){
switch (mt_rand(1,4)){
case 1:
$option_1 ++;
break;
case 2:
$option_2 ++;
break;
case 3:
$option_3 ++;
break;
case 4:
$option_4 ++;
}
}
$time2 = microtime();
[/php]

Bei der Nutzung von grossen Zahlen scheint es Prima zu funktionieren, wie obiges Beispiel zeigt. Also mit der originalen Verwendung mit e_rand().

Ich habe aber noch mal eine Schleife laufen lassen, mit verteilten cases (Fällen):
[php]
$loops = 100000;
$option_1 = 0;
$option_2 = 0;
$option_3 = 0;
$option_4 = 0;
$time1 = microtime();
for ($i = 0; $i < $loops; $i ++){
switch (e_rand(1,8)){
case 1:
case 5:
$option_1 ++;
break;
case 2:
case 6:
$option_2 ++;
break;
case 3:
case 7:
$option_3 ++;
break;
case 4:
case 8:
$option_4 ++;
}
}
$time2 = microtime();
[/php]
Ergibt:
$this->bbcode_second_pass_code('', '
Funktion e_rand():
Option 1: 21426 / 21.4%
Option 2: 28617 / 28.6%
Option 3: 28626 / 28.6%
Option 4: 21331 / 21.3%
Laufzeit der Schleife mit 100000 Durchgängen: 0.473265
')
Es wirkt dem ganzen Ausmass ein wenig gegen, wenn auch nicht komplett. Da ich diese Technik, mit den verteilten Fällen recht oft genutzt habe in meinen Scripts, habe das nochmal versucht. Um mein Gewissen ein wenig zu beruhigen...;-)

Naja definitiv zeigt es, dass wirklich der mt_rand()-Funktion, den Vorzug zu geben, als der e_rand()-Funktion.
Gerade wegen dem einfachen Anwendung in einem kleinen Switch-Konstrukt, welches ja die meisten, wie ich auch, bisher nutzen/nutzten.

Also hier mein Aufruf:
mt_rand() an die Macht, e_rand() in den (Keller-)Schacht!

*rofl*

_________________
Das schwarze Schaf der LotGD-Community, 2. platzierter, beim Giga.de Homepage-Award 2007 und 1. platzierter beim German Web Award 2008.
PC-ACTION meint: "Sehr gut" für MotWD!
Mind of the White Dragon => http://my-logd.com/motwd


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 10 Nov, 2007 11:33 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
*höhö*
Netter Benchmark, ich denke, der wird einigen jetzt zu denken geben. Aber das es solche ausmaße hat, war mir selbst so stark nicht bewusst.

Aber gut, statt solch eine große Funktion zu nutzen, die wohl mehr beansprucht, kann man das gleiche mit 'mt_rand' kürzer u. kleiner machen. =)


In Reimen hälst dich gut. Versuch doch ein Ereignis in Reimen zu verfassen, dann fangen die Spieler an, dich zu hassen. *lach - schmunzel*


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 10 Nov, 2007 12:08 
Offline
Admin
Admin
Benutzeravatar

Registriert: Di 21 Jan, 2003 01:11
Beiträge: 1604
Wohnort: Haßfurt
Geschlecht: Männlich
LoGD: http://www.anpera.net/logd
Skype: anpera-net
An dieser Stelle vielleicht ein kleiner Hinweis, wofür e_rand() eigentlich gedacht ist, bevor die Funktion mit Biertischparolen überall durch mt_rand() ersetzt wird. Denn DAS würde sich äußerst negativ auf das Spiel auswirken!!

mt_rand() erzeugt im angegebenen Bereich gleichmäßige Ergebnisse. Bei Kämpfen würde das bedeuten, dass alle Werte bei Angriffen, Verteidigungen, Monsterstärken etc. gleich häufig vorkommen würden. Schwache, mittlere und starke.

Gewünscht ist aber, dass die stärksten und die schwächsten Werte mit geringerer Wahrscheinlichkeit auftreten. Das leistet e_rand(). Ideal wäre dafür vielleicht eine Gauß'sche Verteilung - aber e_rand kommt dem gewünschten Effekt auch ohne große Rechnerei schon ausreichend nahe.
8)

_________________
Praxis ist, wenn alles klappt aber keiner weiß warum. Theorie ist, wenn man weiß wie es geht, aber nichts klappt. Wir haben beides erfolgreich vereinigt: Bei uns klappt nichts und keiner weiß warum!

Neues Video: Marios freier Tag in Second Life


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 10 Nov, 2007 12:12 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Also wäre es dennoch, in diesem Falle Sinnvoll, es bei gewissen Ereignissen o.ä. zu nutzen, was nicht bedingt mit einem Kampf zu tun hat. Oder nicht?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 10 Nov, 2007 17:04 
Offline
Freak
Freak
Benutzeravatar

Registriert: Mi 06 Jul, 2005 19:10
Beiträge: 543
Wohnort: Bremen
Geschlecht: Männlich
LoGD: http://my-logd.com/motwd
anpera hat geschrieben:
[...]bevor die Funktion mit Biertischparolen [...]


Jetzt fühlen sich meine literarischen Fähigkeiten denunziert....
Dabei habe ich mir solche Mühe gegeben, und dass zu solch einer Uhrzeit.
*hrhr*

_________________
Das schwarze Schaf der LotGD-Community, 2. platzierter, beim Giga.de Homepage-Award 2007 und 1. platzierter beim German Web Award 2008.
PC-ACTION meint: "Sehr gut" für MotWD!
Mind of the White Dragon => http://my-logd.com/motwd


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: ^^
BeitragVerfasst: Sa 10 Nov, 2007 18:56 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 15 Okt, 2005 14:06
Beiträge: 864
Geschlecht: Männlich
LoGD: http://shinobilegends.com
:)

hier wäre was...gibts in 1.1.1

[php]$bell_curve=0;
function bell_rand($min=false,$max=false){
global $bell_curve;
if ($min===false && $max===false) {
//no value passed, assume 0 min, and 1 max.
$min=0;
$max=1;
}
if ($max===false){ // here got something mixed up in the previous versions
//only one value passed, assume it is the max.
$max = $min;
$min = 0;
}
if($min>$max){
//min is bigger than max, switch.
$x = $max;
$max = $min;
$min = $x;
}
if (($min-$max)==0){
//equal values, return one of them.
return $min;
}
if (!is_array($bell_curve)){
$bell_curve = array(
3 => -0.716599,
4 => -0.708501841,
5 => -0.688258942,
6 => -0.676113203,
7 => -0.659918884,
8 => -0.651821725,
9 => -0.639675985,
10 => -0.631578826,
11 => -0.627530246,
12 => -0.619433087,
13 => -0.611335927,
14 => -0.607287348,
15 => -0.599190188,
16 => -0.595141608,
17 => -0.591093029,
18 => -0.587044449,
19 => -0.582995869,
20 => -0.57894729,
21 => -0.57489871,
22 => -0.57085013,
23 => -0.56680155,
24 => -0.562752971,
25 => -0.558704391,
26 => -0.554655811,
28 => -0.550607232,
29 => -0.546558652,
31 => -0.542510072,
32 => -0.538461492,
34 => -0.534412913,
35 => -0.530364333,
37 => -0.526315753,
39 => -0.522267174,
41 => -0.518218594,
43 => -0.514170014,
45 => -0.510121434,
47 => -0.506072855,
50 => -0.502024275,
52 => -0.497975695,
54 => -0.493927115,
57 => -0.489878536,
60 => -0.485829956,
63 => -0.481781376,
66 => -0.477732797,
69 => -0.473684217,
72 => -0.469635637,
75 => -0.465587057,
79 => -0.461538478,
83 => -0.457489898,
86 => -0.453441318,
90 => -0.449392739,
95 => -0.445344159,
99 => -0.441295579,
104 => -0.437246999,
108 => -0.43319842,
113 => -0.42914984,
118 => -0.42510126,
124 => -0.421052681,
129 => -0.417004101,
135 => -0.412955521,
141 => -0.408906941,
147 => -0.404858362,
154 => -0.400809782,
161 => -0.396761202,
168 => -0.392712623,
175 => -0.388664043,
183 => -0.384615463,
191 => -0.380566883,
199 => -0.376518304,
207 => -0.372469724,
216 => -0.368421144,
226 => -0.364372565,
235 => -0.360323985,
245 => -0.356275405,
256 => -0.352226825,
266 => -0.348178246,
277 => -0.344129666,
289 => -0.340081086,
301 => -0.336032506,
313 => -0.331983927,
326 => -0.327935347,
340 => -0.323886767,
354 => -0.319838188,
368 => -0.315789608,
383 => -0.311741028,
399 => -0.307692448,
415 => -0.303643869,
431 => -0.299595289,
448 => -0.295546709,
466 => -0.29149813,
485 => -0.28744955,
504 => -0.28340097,
523 => -0.27935239,
544 => -0.275303811,
565 => -0.271255231,
587 => -0.267206651,
609 => -0.263158072,
633 => -0.259109492,
657 => -0.255060912,
682 => -0.251012332,
708 => -0.246963753,
734 => -0.242915173,
762 => -0.238866593,
790 => -0.234818014,
820 => -0.230769434,
850 => -0.226720854,
881 => -0.222672274,
914 => -0.218623695,
947 => -0.214575115,
982 => -0.210526535,
1017 => -0.206477955,
1054 => -0.202429376,
1091 => -0.198380796,
1130 => -0.194332216,
1171 => -0.190283637,
1212 => -0.186235057,
1255 => -0.182186477,
1298 => -0.178137897,
1344 => -0.174089318,
1390 => -0.170040738,
1438 => -0.165992158,
1488 => -0.161943579,
1539 => -0.157894999,
1591 => -0.153846419,
1645 => -0.149797839,
1700 => -0.14574926,
1757 => -0.14170068,
1816 => -0.1376521,
1876 => -0.133603521,
1938 => -0.129554941,
2002 => -0.125506361,
2068 => -0.121457781,
2135 => -0.117409202,
2204 => -0.113360622,
2275 => -0.109312042,
2348 => -0.105263463,
2423 => -0.101214883,
2500 => -0.097166303,
2579 => -0.093117723,
2660 => -0.089069144,
2743 => -0.085020564,
2828 => -0.080971984,
2916 => -0.076923405,
3005 => -0.072874825,
3097 => -0.068826245,
3192 => -0.064777665,
3288 => -0.060729086,
3387 => -0.056680506,
3489 => -0.052631926,
3593 => -0.048583346,
3700 => -0.044534767,
3809 => -0.040486187,
3920 => -0.036437607,
4035 => -0.032389028,
4152 => -0.028340448,
4272 => -0.024291868,
4394 => -0.020243288,
4520 => -0.016194709,
4648 => -0.012146129,
4779 => -0.008097549,
4913 => -0.00404897,
5050 => 0, // 5th percentile
5190 => 0.00404819,
5334 => 0.00809677,
5480 => 0.012145349,
5629 => 0.016193929,
5782 => 0.020242509,
5938 => 0.024291088,
6097 => 0.028339668,
6260 => 0.032388248,
6426 => 0.036436828,
6595 => 0.040485407,
6768 => 0.044533987,
6944 => 0.048582567,
7123 => 0.052631146,
7307 => 0.056679726,
7493 => 0.060728306,
7684 => 0.064776886,
7878 => 0.068825465,
8076 => 0.072874045,
8277 => 0.076922625,
8482 => 0.080971205,
8692 => 0.085019784,
8904 => 0.089068364,
9121 => 0.093116944,
9342 => 0.097165523,
9566 => 0.101214103,
9795 => 0.105262683,
10027 => 0.109311263,
10264 => 0.113359842,
10504 => 0.117408422,
10749 => 0.121457002,
10997 => 0.125505581,
11250 => 0.129554161,
11507 => 0.133602741,
11768 => 0.137651321,
12033 => 0.1416999,
12302 => 0.14574848,
12576 => 0.14979706,
12854 => 0.153845639,
13136 => 0.157894219,
13422 => 0.161942799,
13712 => 0.165991379,
14007 => 0.170039958,
14306 => 0.174088538,
14609 => 0.178137118,
14917 => 0.182185697,
15229 => 0.186234277,
15545 => 0.190282857,
15866 => 0.194331437,
16190 => 0.198380016,
16519 => 0.202428596,
16853 => 0.206477176,
17190 => 0.210525755,
17532 => 0.214574335,
17879 => 0.218622915,
18229 => 0.222671495,
18584 => 0.226720074,
18943 => 0.230768654,
19306 => 0.234817234,
19674 => 0.238865814,
20045 => 0.242914393,
20421 => 0.246962973,
20801 => 0.251011553,
21186 => 0.255060132,
21574 => 0.259108712,
21966 => 0.263157292,
22363 => 0.267205872,
22763 => 0.271254451,
23168 => 0.275303031,
23576 => 0.279351611,
23989 => 0.28340019,
24405 => 0.28744877,
24825 => 0.29149735,
25249 => 0.29554593,
25677 => 0.299594509,
26109 => 0.303643089,
26544 => 0.307691669,
26983 => 0.311740248,
27425 => 0.315788828,
27871 => 0.319837408,
28321 => 0.323885988,
28774 => 0.327934567,
29230 => 0.331983147,
29690 => 0.336031727,
30153 => 0.340080306,
30619 => 0.344128886,
31089 => 0.348177466,
31561 => 0.352226046,
32037 => 0.356274625,
32515 => 0.360323205,
32997 => 0.364371785,
33481 => 0.368420365,
33968 => 0.372468944,
34458 => 0.376517524,
34950 => 0.380566104,
35445 => 0.384614683,
35942 => 0.388663263,
36442 => 0.392711843,
36944 => 0.396760423,
37448 => 0.400809002,
37955 => 0.404857582,
38463 => 0.408906162,
38974 => 0.412954741,
39486 => 0.417003321,
40001 => 0.421051901,
40517 => 0.425100481,
41034 => 0.42914906,
41553 => 0.43319764,
42074 => 0.43724622,
42596 => 0.441294799,
43119 => 0.445343379,
43644 => 0.449391959,
44170 => 0.453440539,
44696 => 0.457489118,
45224 => 0.461537698,
45753 => 0.465586278,
46282 => 0.469634857,
46812 => 0.473683437,
47342 => 0.477732017,
47873 => 0.481780597,
48405 => 0.485829176,
48936 => 0.489877756,
49468 => 0.493926336,
50000 => 0.497974916,
50532 => 0.502023495,
51064 => 0.506072075,
51595 => 0.510120655,
52127 => 0.514169234,
52658 => 0.518217814,
53188 => 0.522266394,
53718 => 0.526314974,
54247 => 0.530363553,
54776 => 0.534412133,
55304 => 0.538460713,
55830 => 0.542509292,
56356 => 0.546557872,
56881 => 0.550606452,
57404 => 0.554655032,
57926 => 0.558703611,
58447 => 0.562752191,
58966 => 0.566800771,
59483 => 0.57084935,
59999 => 0.57489793,
60514 => 0.57894651,
61026 => 0.58299509,
61537 => 0.587043669,
62045 => 0.591092249,
62552 => 0.595140829,
63056 => 0.599189408,
63558 => 0.603237988,
64058 => 0.607286568,
64555 => 0.611335148,
65050 => 0.615383727,
65542 => 0.619432307,
66032 => 0.623480887,
66519 => 0.627529466,
67003 => 0.631578046,
67485 => 0.635626626,
67963 => 0.639675206,
68439 => 0.643723785,
68911 => 0.647772365,
69381 => 0.651820945,
69847 => 0.655869525,
70310 => 0.659918104,
70770 => 0.663966684,
71226 => 0.668015264,
71679 => 0.672063843,
72129 => 0.676112423,
72575 => 0.680161003,
73017 => 0.684209583,
73456 => 0.688258162,
73891 => 0.692306742,
74323 => 0.696355322,
74751 => 0.700403901,
75175 => 0.704452481,
75595 => 0.708501061,
76011 => 0.712549641,
76424 => 0.71659822,
76832 => 0.7206468,
77237 => 0.72469538,
77637 => 0.728743959,
78034 => 0.732792539,
78426 => 0.736841119,
78814 => 0.740889699,
79199 => 0.744938278,
79579 => 0.748986858,
79955 => 0.753035438,
80326 => 0.757084017,
80694 => 0.761132597,
81057 => 0.765181177,
81416 => 0.769229757,
81771 => 0.773278336,
82121 => 0.777326916,
82468 => 0.781375496,
82810 => 0.785424076,
83147 => 0.789472655,
83481 => 0.793521235,
83810 => 0.797569815,
84134 => 0.801618394,
84455 => 0.805666974,
84771 => 0.809715554,
85083 => 0.813764134,
85391 => 0.817812713,
85694 => 0.821861293,
85993 => 0.825909873,
86288 => 0.829958452,
86578 => 0.834007032,
86864 => 0.838055612,
87146 => 0.842104192,
87424 => 0.846152771,
87698 => 0.850201351,
87967 => 0.854249931,
88232 => 0.85829851,
88493 => 0.86234709,
88750 => 0.86639567,
89003 => 0.87044425,
89251 => 0.874492829,
89496 => 0.878541409,
89736 => 0.882589989,
89973 => 0.886638568,
90205 => 0.890687148,
90434 => 0.894735728,
90658 => 0.898784308,
90879 => 0.902832887,
91096 => 0.906881467,
91308 => 0.910930047,
91518 => 0.914978626,
91723 => 0.919027206,
91924 => 0.923075786,
92122 => 0.927124366,
92316 => 0.931172945,
92507 => 0.935221525,
92693 => 0.939270105,
92877 => 0.943318685,
93056 => 0.947367264,
93232 => 0.951415844,
93405 => 0.955464424,
93574 => 0.959513003,
93740 => 0.963561583,
93903 => 0.967610163,
94062 => 0.971658743,
94218 => 0.975707322,
94371 => 0.979755902,
94520 => 0.983804482,
94666 => 0.987853061,
94810 => 0.991901641,
94950 => 0.995950221,
95087 => 1, // 95th Percentile
95221 => 1.00404738,
95352 => 1.00809596,
95480 => 1.01214454,
95606 => 1.016193119,
95728 => 1.020241699,
95848 => 1.024290279,
95965 => 1.028338859,
96080 => 1.032387438,
96191 => 1.036436018,
96300 => 1.040484598,
96407 => 1.044533177,
96511 => 1.048581757,
96613 => 1.052630337,
96712 => 1.056678917,
96808 => 1.060727496,
96903 => 1.064776076,
96995 => 1.068824656,
97084 => 1.072873236,
97172 => 1.076921815,
97257 => 1.080970395,
97340 => 1.085018975,
97421 => 1.089067554,
97500 => 1.093116134,
97577 => 1.097164714,
97652 => 1.101213294,
97725 => 1.105261873,
97796 => 1.109310453,
97865 => 1.113359033,
97932 => 1.117407612,
97998 => 1.121456192,
98062 => 1.125504772,
98124 => 1.129553352,
98184 => 1.133601931,
98243 => 1.137650511,
98300 => 1.141699091,
98355 => 1.14574767,
98409 => 1.14979625,
98461 => 1.15384483,
98512 => 1.15789341,
98562 => 1.161941989,
98610 => 1.165990569,
98656 => 1.170039149,
98702 => 1.174087728,
98745 => 1.178136308,
98788 => 1.182184888,
98829 => 1.186233468,
98870 => 1.190282047,
98909 => 1.194330627,
98946 => 1.198379207,
98983 => 1.202427786,
99018 => 1.206476366,
99053 => 1.210524946,
99086 => 1.214573526,
99119 => 1.218622105,
99150 => 1.222670685,
99180 => 1.226719265,
99210 => 1.230767845,
99238 => 1.234816424,
99266 => 1.238865004,
99292 => 1.242913584,
99318 => 1.246962163,
99343 => 1.251010743,
99367 => 1.255059323,
99391 => 1.259107903,
99413 => 1.263156482,
99435 => 1.267205062,
99456 => 1.271253642,
99477 => 1.275302221,
99496 => 1.279350801,
99515 => 1.283399381,
99534 => 1.287447961,
99552 => 1.29149654,
99569 => 1.29554512,
99585 => 1.2995937,
99601 => 1.303642279,
99617 => 1.307690859,
99632 => 1.311739439,
99646 => 1.315788019,
99660 => 1.319836598,
99674 => 1.323885178,
99687 => 1.327933758,
99699 => 1.331982337,
99711 => 1.336030917,
99723 => 1.340079497,
99734 => 1.344128077,
99744 => 1.348176656,
99755 => 1.352225236,
99765 => 1.356273816,
99774 => 1.360322396,
99784 => 1.364370975,
99793 => 1.368419555,
99801 => 1.372468135,
99809 => 1.376516714,
99817 => 1.380565294,
99825 => 1.384613874,
99832 => 1.388662454,
99839 => 1.392711033,
99846 => 1.396759613,
99853 => 1.400808193,
99859 => 1.404856772,
99865 => 1.408905352,
99871 => 1.412953932,
99876 => 1.417002512,
99882 => 1.421051091,
99887 => 1.425099671,
99892 => 1.429148251,
99896 => 1.43319683,
99901 => 1.43724541,
99905 => 1.44129399,
99910 => 1.44534257,
99914 => 1.449391149,
99917 => 1.453439729,
99921 => 1.457488309,
99925 => 1.461536888,
99928 => 1.465585468,
99931 => 1.469634048,
99934 => 1.473682628,
99937 => 1.477731207,
99940 => 1.481779787,
99943 => 1.485828367,
99946 => 1.489876946,
99948 => 1.493925526,
99950 => 1.497974106,
99953 => 1.502022686,
99955 => 1.506071265,
99957 => 1.510119845,
99959 => 1.514168425,
99961 => 1.518217005,
99963 => 1.522265584,
99965 => 1.526314164,
99966 => 1.530362744,
99968 => 1.534411323,
99969 => 1.538459903,
99971 => 1.542508483,
99972 => 1.546557063,
99974 => 1.550605642,
99975 => 1.554654222,
99976 => 1.558702802,
99977 => 1.562751381,
99978 => 1.566799961,
99979 => 1.570848541,
99980 => 1.574897121,
99981 => 1.5789457,
99982 => 1.58299428,
99983 => 1.58704286,
99984 => 1.591091439,
99985 => 1.595140019,
99986 => 1.603237179,
99987 => 1.607285758,
99988 => 1.615382918,
99989 => 1.623480077,
99990 => 1.627528657,
99991 => 1.635625816,
99992 => 1.647771556,
99993 => 1.655868715,
99994 => 1.672063034,
99995 => 1.684208773,
99996 => 1.704451672,
99997 => 1.712548831
);
}
$r = mt_rand(0,100000);
//echo $r." = ";
reset($bell_curve);
while (list($key,$val)=each($bell_curve)){
if ($key>=$r) {
return $min + $val * ($max-$min);
}
}
//We're above 0.99997
return $min + $val * ($max-$min);

//below optomizations don't work atm.
echo $r." = ";
$index="0.00000";
for ($n = 0; $n<strlen($r); $n++){
$f = substr($r,0,$n);
if (isset($bell_curve[(float)$f])) $index = $f;
}
if (strlen($index)>=7){
return $min + $bell_curve[(float)$f] * ($max-$min);
}
$o = strlen($f)-2;
$o = pow(10,$o); // $o is orders of magnitude of our current closest index match
for ($n = 0; $n<10000; $n++){
$x = $n / $o;
if (isset($bell_curve[(float)($f+$x)])) return $min + $bell_curve[(float)($f+$x)] * ($max-$min);
if (isset($bell_curve[(float)($f-$x)])) return $min + $bell_curve[(float)($f-$x)] * ($max-$min);
}
echo "\n<br>Unable to locate random value, \$r was $r<br>\n";
}[/php]

ja, endlich mal gespammt ^^

_________________
Entwicklung Lotgd 1.2.2 +nb
1.2.1 +nb ist final

Bugreports/Testing erwünscht, http://nb-core.org

Wichtige Info für Programmierersucher:
viewtopic.php?f=34&t=4285


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 21 Dez, 2007 19:21 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Wenn man es ein bisschen einfacher strikt kann man auch einen Simulierten Bernoulli-Versuch ablaufen lassen, die sind ja bekanntermaßen glockenförmig verteilt:
[php]
function gauss_rand($max,$min=0){
$res = $min;
for ($i=0;$i<$max;$i++) $res += mt_rand(0,1);
return $res;
}
[/php]

Nachteil wäre der häufige Aufruf einer bereits integrierten rand-Funktion. Aber mit bestechend kompaktem Code ^^

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 21 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum