Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Cursos Online iMasters
Foto:

numeros aleatorios sem repetir

  • Por favor, faça o login para responder
5 respostas neste tópico

#1 Wellington09

Wellington09
  • Membros
  • 402 posts

Postado 04 janeiro 2010 - 08:12

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...
  • 0

#2 M4n0w4r

M4n0w4r
  • Membros
  • 105 posts

Postado 05 janeiro 2010 - 14:26

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 <img src='http://forum.imasters.com.br/public/style_emoticons/<#EMO_DIR#>/biggrin.gif' class='bbc_emoticon' alt=':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 :)
  • 0

#3 Holt

Holt

    PHP e Javascript

  • Membros
  • 482 posts

Postado 05 janeiro 2010 - 16:15

<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...
  • 0

#4 -=Felipe=-

-=Felipe=-
  • Membros
  • 98 posts

Postado 05 janeiro 2010 - 16:45

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&amp;buttontxt=Generate&amp;width=160&amp;height=200&amp;border=on&amp;bgcolor=%23FFFFFF&amp;txtcolor=%23777777&amp;altbgcolor=%23CCCCFF&amp;alttxtcolor=%23000000&amp;defaultmin=1&amp;defaultmax=100&amp;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>

  • 0

#5 Wellington09

Wellington09
  • Membros
  • 402 posts

Postado 07 janeiro 2010 - 08:14

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.
  • 0

#6 -=Felipe=-

-=Felipe=-
  • Membros
  • 98 posts

Postado 07 janeiro 2010 - 18:06

Achei um site aqui que podi te ajudar.

http://www.random.org/integers/
  • 0




Publicidade

/ins>