Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zufallszahl zwischen -1 und 1? (https://www.delphipraxis.net/123997-zufallszahl-zwischen-1-und-1-a.html)

mo_greene 12. Nov 2008 20:00


Zufallszahl zwischen -1 und 1?
 
Hallo,

wie kann ich eine ganzzahlige Zufallszahl zwischen -1 und 1 erzeugen?
Ich dachte an die Funktion Random(), aber wie gebe ich da an, dass die Zufallszahl zwischen -1 und 1 sein soll?

Danke!

thkerkmann 12. Nov 2008 20:00

Re: Zufallszahl zwischen -1 und 1?
 
Delphi-Quellcode:
Zufall := Random(2) - 1;
Gruss

christian.noeding 12. Nov 2008 21:23

Re: Zufallszahl zwischen -1 und 1?
 
naja, eher
Delphi-Quellcode:
Random(3)-1
oder? Random(Wert) gibt doch eine Zufallszahl zwischen 0 und <Wert (also 0..Wert-1). Somit müsste doch Random(3) genommen werden.

Random(3): Zahl zwischen 0..2.

Random(3)-1 ergibt dann: -1..1.


gute Nacht,
Christian :)

jfheins 12. Nov 2008 21:35

Re: Zufallszahl zwischen -1 und 1?
 
Es gibt auch Kommazahlen :mrgreen: :P

Random(2) gibt also eine Zufallszahl x zurück, für die gilt: 0 <= x < 2 ;)

Random(3) würde also z.B. 2,5 zurückgeben können, was dann zu 1,5 wird, was nicht im Intervall -1..1 liegt :P

Aber ein Mathematiker hätte sowiso schon längtst gefragt, ,ob den ein offenes oder ein geschlossenes Intervall vorligt, und aufgrund deshalb die Frage nicht formal korrekt definiert wurde :mrgreen:

Medium 12. Nov 2008 21:56

Re: Zufallszahl zwischen -1 und 1?
 
Random, wenn mit einem Integer-Parameter aufgerufen, gibt auch nur Integer zurück ;). Und nach diesen war ja auch gefragt, daher sollte "random(3)-1" den Zweck erfüllen.

silver-moon-2000 12. Nov 2008 22:00

Re: Zufallszahl zwischen -1 und 1?
 
Zitat:

Zitat von jfheins
Es gibt auch Kommazahlen :mrgreen: :P

Random(2) gibt also eine Zufallszahl x zurück, für die gilt: 0 <= x < 2 ;)

Random(3) würde also z.B. 2,5 zurückgeben können, was dann zu 1,5 wird, was nicht im Intervall -1..1 liegt :P

Sorry, aber meine Hilfe (TurboDelphiEx) sagt:
Zitat:

[Delphi] function Random(const ARange: Integer): Integer; overload;
[Delphi] function Random(): Extended; overload;
soll heißen, sobald man einen Bereich angibt, wird ein Integer zurückgeliefert. Außerdem habe ich bei Random(x) noch nie gesehen, dass eine Kommazahl zurückkommt.

Aber um wieder zum Thema zu kommen, es gibt auch noch

[pre]function RandomRange(const AFrom: Integer; const ATo: Integer): Integer[/pre]

die auch mit negativen Zahlen zurechtkommt, also etwa so x := RandomRange(-1, 1);

edt : roter Kasten steckt wohl immer noch im ICE fest?

edit2: warum (zum Teufel) wird mein "delphi" Tag um RandomRange ständig in einen "pre" Tag verwandelt?B Ist das ein Bug?

inherited 12. Nov 2008 22:13

Re: Zufallszahl zwischen -1 und 1?
 
Delphi-Quellcode:
  MyFloat := random()*2 - 1

Namenloser 12. Nov 2008 22:16

Re: Zufallszahl zwischen -1 und 1?
 
Zitat:

Zitat von silver-moon-2000
edit2: warum (zum Teufel) wird mein "delphi" Tag um RandomRange ständig in einen "pre" Tag verwandelt?B Ist das ein Bug?

Ich glaube, das hatte ich auch schonmal. Lag in dem fall wohl wahrscheinlich daran, dass im Quote zqei mal "[Delphi]" vorkam.

jfheins 12. Nov 2008 22:49

Re: Zufallszahl zwischen -1 und 1?
 
Verdammt ist das inkonsistent :mrgreen:

Okay, ja wenn man keine Ahnung hat ... :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz