CrazyLOL 2 Denunciar post Postado Janeiro 2, 2013 Galera to querendo criar uma sequencia de 4 numeros aleatórias de uma lista, porém não poderia repetir. Exemplo tenho a lista de numeros: 25,16,20,14 através dessa ela gerar outras sequencias exemplo: 14,25,20,16 mas sem repetir a sequencia... Como poderia fazer isso? att, Compartilhar este post Link para o post Compartilhar em outros sites
brhvitor6 14 Denunciar post Postado Janeiro 2, 2013 <?php $QuantNumeros = 40; $NumAtual = 1; $NumUtilizados = array(); while($NumAtual <= $QuantNumeros) { $NumG = rand(0,99); if(!in_array($NumG,$NumUtilizados)) { array_push($NumUtilizados,$NumG); echo $NumG."<br>"; $NumAtual++; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Stratocaster 85 10 Denunciar post Postado Janeiro 2, 2013 <?php $numeros = array(); while(count($numeros) < 4){ $sorteado = mt_rand(1, 100); $numeros[$sorteado] = $sorteado; } print_r($numeros); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Janeiro 2, 2013 Existe algumas maneiras bem garantidas de não repetir, a mais básica, é criar uma lista de opções, e remover os números já selecionados. $array = [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10]; shuffle($array); echo 'primeiro sorteio:<br />'; for($i = 1 ; $i <= 4 ; $i++) { echo $i.'º: '.array_shift($array).'<br />'; } echo 'segundo sorteio:<br />'; for($i = 1 ; $i <= 4 ; $i++) { echo $i.'º: '.array_shift($array).'<br />'; } Saída: primeiro sorteio: 1º: 8 2º: 9 3º: 2 4º: 10 segundo sorteio: 1º: 3 2º: 7 3º: 4 4º: 1 Teste do código: http://codepad.viper-7.com/JNHEkg Caso você possua os número salvo de outra maneira, você remover eles do vetor de sorteio: $array = [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10]; $arraySelecionados = [4 , 8 , 3 , 10]; $array = array_diff($array , $arraySelecionados); shuffle($array); echo 'sorteio:<br />'; for($i = 1 ; $i <= 4 ; $i++) { echo $i.'º: '.array_shift($array).'<br />'; } Saída: sorteio:1º: 5 2º: 1 3º: 2 4º: 9 Teste do código: http://codepad.viper-7.com/hWo4iC Compartilhar este post Link para o post Compartilhar em outros sites
CrazyLOL 2 Denunciar post Postado Janeiro 3, 2013 OBrigado galera, porém como disse eu tenho já alguns numeros definidos e atraves dele gostaria de gerar uma nova sequencia... no caso tenho esses numeros 25,16,20,14,65,96,33 nessa sequencia, porém queria uma nova sequencia com apenas 4 numeros usando esses numeros que já possuo, e o detalhe é que não pode repetir. A parte de gerar os numeros até está tranquilo o negocio está sendo a forma para não repetir os numeros sorteados... Compartilhar este post Link para o post Compartilhar em outros sites
brhvitor6 14 Denunciar post Postado Janeiro 3, 2013 desculpe, não havia entendido corretamente <?php $QuantNumeros = 4; $NumAtual = 1; $NumUtilizados = array(); $PreNum = array(25,16,20,14,65,96,33); while($NumAtual <= $QuantNumeros) { $NumG = rand(0,6); if(!in_array($PreNum[$NumG],$NumUtilizados)) { array_push($NumUtilizados,$PreNum[$NumG]); echo $PreNum[$NumG]."<br>"; $NumAtual++; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Janeiro 3, 2013 Leia novamente o #4. Lá está explicado. Compartilhar este post Link para o post Compartilhar em outros sites
Stratocaster 85 10 Denunciar post Postado Janeiro 3, 2013 Pesquise sobre Análise Combinatória Compartilhar este post Link para o post Compartilhar em outros sites