FAQ | Points | Add... | Recent posts | Search | Register | Log in


[JAVA] Math.random - wyłączenie liczby z zakresu.


Post new topic  Reply to topic      Main Page -> Forum Index -> Programming Generally -> Beginners Programming -> [JAVA] Math.random - wyłączenie liczby z zakresu.
Author
Message
greep
Poziom 17
Poziom 17


Joined: 29 Sep 2004
Posts: 393

Post#1 Post from the author of the topic 01 Mar 2010 22:08   

[JAVA] Math.random - wyłączenie liczby z zakresu.


Wiem, ze w Java mozna wygenerowac 'losowa' liczbe calkowita z pewnego zakresu liczb uzywajac metody Math.random

Np: zeby wygenerowac losowa liczbe calkowita z zakresu liczb 2-10 napiszemy:
x = ( 2 + (int) Math.random()* 8); // osiem bo 10-2=8

Czy jest mozliwosc wygenerowania losowej liczby calkowitej z dowolnego zakresu liczb z wylaczeniem jednej lub wiecej liczb? Np: chce wygenerowac losowa liczbe calkowita z zakresu liczb 2 - 10 z wylaczeniem liczby 5?
Czyli wygenerowana liczba moze byc: 2, 3, 4, 6, 7, 8, 9, 10.

Bylbym bardzo wdzieczny gdyby ktos przedstawil kod potrzebny rozwiazania tego problemu.
Zastanawia mnie czy problem taki mozna rozwiazac bezposrednio, czyli przez dodanie jakiegos parametru do metody Math.random, czy moze potrzeba troche wiecej kodu?

z gory dziekuje za pomoc

Poprawiłem tytuł. - arnoldziq
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 01 Mar 2010 22:08   





Back to top
   
przemo_wielki
Poziom 18
Poziom 18


Joined: 11 Sep 2006
Posts: 584

Post#2 01 Mar 2010 23:05helpful post - solution   

Re: JAVA Math.random - wylaczenie jakiejs liczby z zakresu


Nie znam takie wbudowanej funkcji. Ale można to obejść, możesz losować liczby i sprawdzać czy wylosowana to 5 jeżeli tak to powtarzasz. To ma jedną wadę wyobraź sobie że cały czas będziesz losował 5 ... Druga opcja to wykonanie 2 losowań pierwsze dla liczb z przedziału np. <2,5) drugie (5,n>. Trzecie co przychodzi mi na myśl to wrzucasz konkretne liczby do tablicy i z tej tablicy losujesz (losujesz tak naprawdę numer indeksu).
Back to top
   
greep
Poziom 17
Poziom 17


Joined: 29 Sep 2004
Posts: 393

Post#3 Post from the author of the topic 02 Mar 2010 02:02   

Re: JAVA Math.random - wylaczenie jakiejs liczby z zakresu


w moim programie to wlasciwie chce wykorzystac tablice.
chodzi o to zeby dla 1 warunku losowal liczbe z indeksu od 1 do 100, a dla 2 warunku zeby losowal liczbe z indeksu od 1 do 100 z pominieciem indeksu 5.

moglbys rozwianac ta 3 opcje.

pozdrawiam i dzieki za pomoc
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 02 Mar 2010 02:02   





Back to top
   
przemo_wielki
Poziom 18
Poziom 18


Joined: 11 Sep 2006
Posts: 584

Post#4 02 Mar 2010 02:59   

Re: JAVA Math.random - wylaczenie jakiejs liczby z zakresu


Jeżeli jest to zakres od 1 do 100 to pierwsza opcja będzie skuteczna: czyli sprawdzanie czy liczba jest 5 i w pozytywnym przypadku ponowne losowanie. Prawdopodobieństwo że wypadnie 5 to 1/100 więc dosyć mało.

Co do 3 opcji zwyczajnie wrzucasz 9 liczb od 1 do 10 z wyłączeniem 5 do tablicy 9 elementowej i losujesz liczby od 1 do 9 które są elementami tablicy np. wylosowałeś 5 to bierzesz tablica[5]=np.6;

Dla liczb od 1 do 10 miało to jeszcze jakieś uzasadnienie (np. jakbyś wyłączył kilka liczb) ale dla zakresu od 1 do 100 (i wyłączenia tylko 1 liczny) przedział jest tak duży i prawdopodobieństwo tak małe że bym się w to nie bawił i skorzystał z pierwszej opcji.
Back to top
   
greep
Poziom 17
Poziom 17


Joined: 29 Sep 2004
Posts: 393

Post#5 Post from the author of the topic 02 Mar 2010 23:56   

Re: [JAVA] Math.random - wyłączenie liczby z zakresu.


dzieki za odpowiedz

jeszcze tak tylko dla potwierdzenia, czy ponizy 'pseudokod' jest ok:

IF ( x > 100 )
y = random integer (2-10)

ELSE // x <= 100
DO
y = random integer (2-10)
WHILE (y == 5)
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 02 Mar 2010 23:56   





Back to top
   
eccocce
Poziom 2
Poziom 2


Joined: 11 Mar 2009
Posts: 2
Location: Wrocław

Post#6 17 Mar 2010 18:48   

Re: [JAVA] Math.random - wyłączenie liczby z zakresu.


wygląda ok, a można wiedzieć do czego potrzebny ci taki oszukany random? ;]
Back to top
   
greep
Poziom 17
Poziom 17


Joined: 29 Sep 2004
Posts: 393

Post#7 Post from the author of the topic 17 Mar 2010 22:26   

Re: [JAVA] Math.random - wyłączenie liczby z zakresu.


chodzilo mi o losowe wygenerowanie dnia urodzin i wylaczenie 29 lutego (jednego miejsca z tablicy) w przypadku wylosowania dnia urodzin z roku przestepnego.

pzdr.
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Programming Generally -> Beginners Programming -> [JAVA] Math.random - wyłączenie liczby z zakresu.
Page 1 of 1
Similar topics
[C] Opis funkcji biblioteki math.h (2)
Problem z math.h w WinAVR-20040720 (4)
Losowe liczby w C++. Generują się te same liczby. (9)
random w c++ na random w pascalu (6)
[JAVA] Podzielniki wylosowanej liczby... (4)
Asembler Jak pobrać z klawiatury liczby z zakresu 0-255 (2)
[AT91SAM7X] arc tan ( atanf ) z biblioteki math.h (11)
WinAVR, atmega8 i sqrt. Biblioteka math. Jak to obejść? (3)
[Atmega32][c]Napisy w pamięci flash, math.h i prosty lcd (6)

Page generation time: 1.328 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed