Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wellington09

numeros aleatorios sem repetir

Recommended Posts

pessoal alguem poderia dar uma dica de como criar uma função de números aleatórios sem repetir ?

ex:

 

quero escolher uma sequencia de numeros de 1 a 10 onde o maximo de numeros escolhidos é 5

 

então ficaria assim:

12345

54321

23145

13425

e ai vai indo sem repetir...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dúvidas


Quero escolher uma sequência de numeros de 1 a 10...


Uma sequência de 1 à 10 = 1,2,3,4,5,6,7,8,9,10

...onde o máximo de números escolhidos é 5


Das muitas combinações que uma sequência não repetitiva de 1 à 10 pode fazer, você quer escolher cinco delas ?

...então ficaria assim:
12345
54321
23145
13425
e ai vai indo sem repetir...


Sou burrinho, acabei entendendo nada.

Código


Levando em conta meu raciocínio e mudando o 1 à 10 para 0 à 9:

<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

<script>
	String.prototype.zerosEsquerda = function (casasDecimais) {
		var zeros = "";
		
		for (var i = 0; i < casasDecimais - this.length; i ++) {
			zeros = zeros + "0";
		}
		
		return zeros + this;
	}
	
	window.onload = function () {
		var coleta = document.createElement ("div");
			coleta.innerHTML = "Clique em qualquer sequência para escolher a sua: "
			coleta.style.border = "1px solid black";
			coleta.style.marginBottom = "40px";
			coleta.style.padding = "10px";
		
		document.body.appendChild (coleta);
		
		var conta_click = 0;
		
		document.onclick = function (event) {
			var event = window.event ? window.event : event;
			var target = event.target ? event.target : event.srcElement;
			
			if (target.nodeName.toLowerCase () === "div") {
				if (conta_click < 5) {
					coleta.innerHTML = coleta.innerHTML + target.innerHTML + " ";
					
					conta_click ++;
				}
				else {
					alert ("Chega né, você já escolheu suas 5 sequências :D")
				}
			}
		}
		
		var array = new Array ();
		var casas = "";
		var num_casas = 10;
		var i;
		
		for (var i = 0; i < num_casas; i ++) {
			casas = casas + 9;
		}
		
		var velocidade = 1;
		i = 0;
		var div;
		
		var intervaulo = window.setInterval (function () {
			if (i >= casas) {
				window.clearInterval (intervaulo);
			}
			
			div = document.createElement ("div");
				div.innerHTML = i.toString ().zerosEsquerda (num_casas);
				div.style.cssFloat = div.style.styleFloat = "left";
				div.style.paddingRight = "10px";
			
			document.body.appendChild (div);
			
			i ++;
		}, velocidade);
	}
</script>

<style>
	body {
		cursor: pointer;
	}
</style>

Brincadeiras a parte, esse script não deve ser usado por ninguem, so esclareça melhor sua dúvida para que eu possa lhe ajudar :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

<html>

<head>

<script type="text/javascript">

do{

var tst = 0;

var num[0]=Math.round(10*(Math.random()));

do{

var num[1]=Math.round(10*(Math.random()));

}while (num[1] == num[0])

do{

var num[2]=Math.round(10*(Math.random()));

}while (num[2] == num[0] || num[2] == num[1])

do{

var num[3]=Math.round(10*(Math.random()));

}while (num[3] == num[0] || num[3] == num[1] || num[3] == num[2])

do{

var num[4]=Math.round(10*(Math.random()));

}while (num[4] == num[0] || num[4] == num[1] || num[4] == num[2] || num[4] == num[3])

windonw.alert(num[0] + num[1]+ num[2]+ num[3]+ num[4]);

}while (tst = 0)

</script>

</head>

<body>

</body>

</html>

Fiz rapidinho aqui... deve ser algo do tipo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho um codigo aqui acho que podi ser bem util

 

<h1><span>True Random Number Service</span></h1>

<div id="homepage-generator">
<!-- <div style="text-align:center;margin-bottom:.5em">New RANDOM.ORG widget<br />[<a href="/widgets/integers/">create your own</a>]</div> -->

<iframe src="http://www.random.org/widgets/integers/iframe.php?title=True+Random+Number+Generator&buttontxt=Generate&width=160&height=200&border=on&bgcolor=%23FFFFFF&txtcolor=%23777777&altbgcolor=%23CCCCFF&alttxtcolor=%23000000&defaultmin=1&defaultmax=100&fixed=off" frameborder="0" width="160" height="200" scrolling="no" longdesc="http://www.random.org/integers/">
The numbers generated by this widget come from RANDOM.ORG's true random number generator.
</iframe>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei um jeito melhor de explicar o que estou querendo fazer pois é bem parecido com o jogo da lotofacil só que no meu caso é com 10 numeros apenas.

 

Mas podemos usar o exemplo da lotofacil mesmo.

 

Na lotofacil tem numeros na cartela de 1 a 25 certo ? e você só pode jogar com 15 numeros certo ? então oque preciso é fazer um random igual este que você passou Felipe só que em vez de trazer apenas 1 numero ele me traga 15 ex:

 

No random só pode escolher esses numeros :

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

 

Porem no random quero que ele me mostre só 15 numeros dos numeros acima ex:

vamos supor que ele escolheu:

02 03 04 06 08 10 12 14 15 16 17 18 21 23 24

 

E ai ele vai criando varias sequencias de 15 numeros sem repetir até chegar no final onde não tem mais como não repetir e ele para de fazer o random.

ex:

vamos supor que no random caiu assim:

01 03 04 06 08 10 12 14 15 16 17 18 21 23 24

01 03 04 06 08 10 12 14 15 16 17 18 21 23 25

05 03 04 06 08 10 12 14 15 16 17 18 21 23 24

01 03 04 06 08 10 12 13 15 16 17 18 21 23 24

01 03 04 06 08 10 12 14 15 16 17 18 20 23 24

... e ai vai sem nunca repetir

 

perceba que os numeros não se repetem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.