Random bez odredjenih brojeva

Započeo Rizzzla
19. Dec. 2019. Zaključano
737
pregleda
12
postova
Rizzzla
3
Hustler
19. Dec. 2019.
Da li postoji neki ugradjen nacin za odradjivanje randoma bez ponavaljanja u pawnu, tj npr. za bingo hajmo rec da izvlaci 10 brojeva od 1-30 i sad kad izvuce 5 da se izbaci mogucnost ponovnog pojavljivanja 5 u narednih 9 brojeva... znam na osnovu c++ logike kako bih to odradio ali mi je malo previse da pravim niz izvucenih brojeva pa da petlja svaki put kad se rand funkcija odradi prolazi kroz citav taj niz i trazi dal broj vec postoji u nizu bla bla... ili ako ima neko jednostavniji nacin, neku precicu da odradim to. Treba mi za CP za neke poslove najvise, ne gori pod nogama al eto bas me zanima dal postoji nesto vec da se ne mucim beze kad budem radio... Hvala.
Bryan123
4
Enforcer
19. Dec. 2019.
Jedino for petlja, bar ja ne znam drugacije.
Kawaki
4
Shot Caller
20. Dec. 2019.
Mozda da napravis neki kao poslic uu to je sik da radis kao prodavac lotta zicas ljude po srvu da kupe malo skuplje i zarade nesto tipa to  😕 😛
Exnas.pwn
5
Godfather
20. Dec. 2019.
Mislim da bi ovo trebalo da radi
new randombrojic;

forward RandomBroj();
public RandomBroj()
{
new broj = 5,
test = random(broj);

if(test != randombrojic)
{
randombrojic = test;
// Nastavak funkcije ono ako je razlicit od proslog
}
else
{
//a ako nije razlicit ponovo pokrecemo randombroj sve dok ne dobijem broj koji je razlicit od prethodnog
RandomBroj();
}
return 1;
}
Nikola-.-
6
Kingpin
20. Dec. 2019.
Napravis iterator i u njemu dodas broj koj se izvuce, kod izvlacenja dodas Iter_Contain tj ako ga ima u iteru da izvlaci ponovo
dodas neku var da broji koji je krug i da prazni iter, valjda si me razumeo
Rizzzla
3
Hustler
20. Dec. 2019.
002 wrote on December 20, 2019, 12:23 am:
Mislim da bi ovo trebalo da radi
new randombrojic;

forward RandomBroj();
public RandomBroj()
{
new broj = 5,
test = random(broj);

if(test != randombrojic)
{
randombrojic = test;
// Nastavak funkcije ono ako je razlicit od proslog
}
else
{
//a ako nije razlicit ponovo pokrecemo randombroj sve dok ne dobijem broj koji je razlicit od prethodnog
RandomBroj();
}
return 1;
}


nece moc, ovdje provjerava samo prethodni broj, tako mozes dobit za izvlacenje 5 brojeva od 1-100 da bude 23232 ako me razumijes,

ali,
         


new ukupanBrojIzvlacenja=hajmorec3;
new randombrojic[ukupanBrojIzvlacenja-1];

forward RandomBroj();
public RandomBroj()
{
        new brojac= 0;
new broj = hajmorec5;
       
new test;

while(brojac != ukupanBrojIzvlacenja)
{
                new provjera=false;
                test=random(broj);
                for(new k=0;k                    if (test==randombrojic){
                      provjera=true;
                      break;
                    }
                }
                if (provjera == false){
                      randombrojic=test;
                      brojac++;
                      return test;
                }

  }
return 1;
}


Bunta ovako nesto sam ja zamislio, ne kazem da je kod ispravan(kucam ujutru u 3 i nesto u pauzi bruklina) samo taj princip sam htio koristit, nez jesi i ti isto ovo mislio il je neki ekonomicniji nacin?
Nikola-.-
6
Kingpin
20. Dec. 2019.
Nije li ti lakse ovo sto sam ja napisao?
Coox
4
Enforcer
20. Dec. 2019.

#define MAX_NUM (10) //najveci broj koji cemo izvuci

new
lastRand = 0;

forward RandNum();
public RandNum(){

if(!lastRand)
lastRand = random(MAX_NUM); //posto nije bilo zadnjeg posljednjeg broja mi postavljamo ovaj

else{

new
test = random(MAX_NUM);

if(lastRand == test && lastrand < MAX_NUM) // provjeravamo da li je zadnji broj jednak izvucenom i da li je na granici
lastRand = ++test;
else if(lastRand == test && lastRand == MAX_NUM)
lastRand = --test;
}

printf("Izvukli smo: %i", lastRand);
return true;
}


Ja sam ovo sklepao sto mi je palo na pamet kao najjednostavniji nacin.
Rizzzla
3
Hustler
20. Dec. 2019.
Salesman ovaj kod sto si napiso ne da nea veze s ovim sto meni treba nego nea veze s mozgom kolko ja vidim, al opet mozda sam ja glup...
Bunta nisam bas shvatio kako si mislio zato sam te i pito jesi na taj fazon konto, de napisi kod ako nije problem...
Coox
4
Enforcer
20. Dec. 2019.
pogresno sam procitao
malipablo
4
Enforcer
20. Dec. 2019.

#include
#include

#define MAX_RANDOM 30
#define BROJ_PRESKAKANJA 9

new Iterator:Brojevi;
new broj, BrojCiklusa[MAX_RANDOM+1];

stock randomf(){

while(Iter_Contains(Brojevi,broj)){
broj = random(MAX_RANDOM);
}

foreach(new i : Brojevi){
if(BrojCiklusa > 0){
BrojCiklusa--;
}
else{
BrojCiklusa = 0;
Iter_SafeRemove(Brojevi,i,i);
}
}
Iter_Add(Brojevi,broj);
BrojCiklusa = BROJ_PRESKAKANJA;

return broj;
}

public OnGameModeInit()
{
Iter_Init(Brojevi);

broj = random(MAX_RANDOM);
Iter_Add(Brojevi,broj);
BrojCiklusa = BROJ_PRESKAKANJA;

// Testiranje
for(new i = 0; i < 15; i++){
printf("%d", randomf());
}

return 1;
}
Rax_King
5
Godfather
20. Dec. 2019.
	#define MAX_RAND_NUM (48)
#define RAND_NUMS (6)

new bool: taken[MAX_RAND_NUM char],
RandNumbers;

for(new i = 0, tmp; i < RAND_NUMS; ++ i) {
do tmp = random(MAX_RAND_NUM);
while(taken{tmp});

RandNumbers = tmp;
taken{tmp} = true;
}

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha