Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
31.01.2002, 17:04
Cyberbird



Hi
Kann man die Funktion rand() auch einschränken (es werden z.b. nur zahlen zw. 1 und 25 ausgegeben.
greetz
Cyberbird

--

Ein einziges Blättchen Erfahrung ist mehr wert, alls ein ganzer Baum guter Ratschläge.

zum Seitenanfang zum Seitenende Profil || Suche
001
31.01.2002, 17:23
Archangel



int _rand(int min, int max)
{
..if(min == max)
....return min;
..if(min > max)
....swap<int>(min, max);

..return (rand()%(max - min + 1)) + min;
}

kA ob das auch mit negativen zahlen klappt, aber so sollte es klappen..

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
002
31.01.2002, 18:34
apfelkorn



knarke... es gibt gar keine negativen werte bei rand :)

--

zum Seitenanfang zum Seitenende Profil || Suche
003
31.01.2002, 18:44
Archangel



ähm, ja, aber (!) :

_rand(-20, 5) dürfte doch eine zahl zwischen -20 und 5 zurückgeben ?

5 - (-20) + 1 = 5 + 20 + 1= 25 + 1 = 26

rand liefert also also eine zahl zwischen 0 und 25..
+ (-20) = - 20, also ist es eine zahl zwischen 0 - 20 = -20 und 25 - 20 = 5

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
004
31.01.2002, 23:27
apfelkorn



okay... machen wirs so:

int _rand(unsigned short int min, unsigned short int max)
{
..if(min == max)
....return min;
..if(min > max)
....swap<int>(min, max);

..return (rand()%(max - min + 1)) + min;
}

weil die funktion rand keine negativen werte erlaubt

--

zum Seitenanfang zum Seitenende Profil || Suche
005
01.02.2002, 14:44
Archangel



wenn man aber negative werte haben will ? man braucht ja keine negativen werte zu erhalten, wenn man bei _rand als min eine zahl >= 0 übergibt..

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
006
01.02.2002, 22:58
mani



dann einfach das ergebnis *-1 :O

--

zum Seitenanfang zum Seitenende Profil || Suche
007
01.02.2002, 23:12
Archangel



und wenn man negative UND positive werte erhalten möchte (zB -20 bis 5) ? :P

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
008
02.02.2002, 01:50
Another1



mensch ... *grrii*

Quellcode:
float RandomNumber(float start,float end) // -(float)RAND_MAX/2 bis +(float)RAND_MAX/2
{
  if(start>end)
    swap(end,start);

   float range = start-end;
  

  return ((range*((float)rand()/(float)RAND_MAX))+start);

}

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche