Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 16:12 07.07.25 
Клубове/ Компютри и Интернет / Програмисти Пълен преглед*
Информация за клуба
Тема Re: Как да... [re: lnfoMatic]
Автор_ (Нерегистриран) 
Публикувано26.04.01 18:15  



towa koeto si napisal e za sluchaina podredba na N chisla (predwaritelno namisleni) - po-razbiraemo shteshe da e da napishesh
che N pyti triabwa da se naprawi razmiana na 2 proizwolni index-a: Swap( a[ rand(N) ] , a[ rand(N) ] )
taka poluchawame izbranite N chisla w sluchaen red

no dokolkoto razbrah wyprosyt e da se nameraiat niakolko sluchaini chisla (predpolagam w diapazona ot 0 do 2^32 -1 ), no bez powtorenia

wyzmojnite reshenia zawisiat ot diapazona za izbor i broia na neobhodimite chisla

- primerno ako triabwa da izberem 999 995 sluchaini chisla ot 1 do 1000000, bez da se powtariat - po-dobre e da namerim 5 "neizbrani" chisla - da si wzemem wsichki ostanali.

- pri generiraneto na chislata da proweriawame dali towa chislo weche ne e izbrano - ako chislata sa celochisleni - moje da se izpolzwa bitow masiw (1-ca kogato chisloto e izbrano), ako diapazonyt ne e goliam i broiat chisla koito ni triabwat syshto ne e goliam

- IMHO ost beautiful way (e.. i toi si e za opredeleni sluchai podhodiash samo)
want M numbers from 1 to N

dopuskame che rand() wryshta chislo mejdu 0 i 1. [0;1)

psewdokod:

wanted_numbers = M;
numbers_left = N;

for i = 1 to N do
if rand() < wanted_numbers / numbers_left then
print i (* wzimame i *)
wanted_numbers = wanted_number - 1

numbers_left = numbers_left - 1


taka poluchawame naredeni M na broi sluchaini chisla w diapazona 1 do N, ako iskame i da sa w sluchaen red - nomera sys sluchainata razmiana na mestata wyrhi rabota.



Цялата тема
ТемаАвторПубликувано
* Как да... Philip   26.04.01 16:41
. * Re: Как да... jamie   26.04.01 16:43
. * Re: Как да... lnfoMatic   26.04.01 17:21
. * Re: Как да... _   26.04.01 18:15
. * uh _   26.04.01 18:28
. * Re: uh lnfoMatic   27.04.01 09:37
. * Re: Как да... seeker   26.04.01 18:25
. * Re: Как да... _   26.04.01 18:34
. * Re: Как да... TRN   26.04.01 21:34
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.