Script em que linguagem? php? javascript(impossivel se for o cliente a correr)? asp?
porque é que dizes que é impossivel se for o cliente a correr??
em javascript tens a função Math.Random()
Olá.
Só para chamar a atenção que os números gerados por essas funções, a não ser que tenhas hardware especializado no servidor, não são verdadeiramente aleatórios; são pseudo-aleatórios. Isto pode, ou não, importar para o que pretendes fazer.
De qualquer maneira, mesmo que não necessites de números verdadeiramente aleatórios, tem especial atenção com o gerador (de números pseudo-aleatórios) que vais utilizar.
Cumps,
JP
Volto a reforçar o que tinha dito: depende do propósito da utilização. Números pseudo-aleatórios são utilizados em "todo o lado" (e.g. criptografia), mas isso não implica que não existam geradores mais seguros que outros - era para isso que queria chamar a atenção.Tão bonito de se ler, mas no entanto pseudo-aleatórios.. não vejo uma única razão de não se poderem usar, acho que toda a gente sabe isso, mas..
What Went Wrong?
- Underestimated the challenges of RNGs.
- The repaired RNG never got called.
- Code review failed to detect that the old RNG was still in use.
De qualquer maneira, podem criar complementos para as vossas funções próprias de random, e usar o time actual para passarem a ser algo mais que pseudos.
Mais uma vez, não quero passar a ideia que estou a mandar flames ou parecido. Simplesmente acho que, se o objectivo é: "...fazer uma "lotaria" e para ser completamente justo, queria que os numeros fossem completamente aleatórios...", é preciso estar consciente dos desafios que existem numa tarefa deste género!A stunning example of a poorly chosen seed for a random number generator appeared on the front page of the New York Times [14] in September 1995. The problem was in Netscape Navigator, a popular program for browsing the World Wide Web. Instead of using truly random information for seeding the random number generator, Netscape's programmers used a combination of the current time of day, the PID of the running Netscape program, and the Parent Process ID (PPID). Researchers at the University of California at Berkeley discovered that they could, through a process of trial and error, discover the numbers that any copy of Netscape was using and crack the encrypted messages with relative ease.
Não é impossivel por impossibilidade técnica pq tens funcões para o fazer, mas um sorteio tem que ser feito com linguagem de servidor para ser vinculativo.
O Math.Random() de javascript não te proporciona o número igual em todos os browsers e perde o proposito da existencia da função para uma lotaria. Nunca poderá correr no lado do cliente...
countzero, também não estou a tentar abrir flames, tou na paz
mas, esses exemplo que deste não tem nada a ver com o exemplo do time do PHP, a não ser que consigas aldrabar o servidor que está a correr server-side PHP.
Não têm a ver? :| Importas-te de explicar um bocado melhor?hostmake disse:anyway, os exemplos onde não seria apropriado fiarmo-nos em pseudo-números de certeza que não tem nada a ver com este tópico, mas obrigado pelo input para quem não sabia é claro
Hmm, isso depende do objectivo dos números aleatórios. A função que referiste pode ser utilizada para gerar uma chave aleatória para um jogo de sorte, por exemplo.
Hmm, certo.
Mas vamos imaginar por base o site do euromilhões. O que dizes será válido para o utilizador fazer uma chave aleatória para ele, para jogar, ou mesmo várias se desejar. Mas, imaginando que o sorteio do €Milhões era feito por computador, a função de geração aleatória teria de estar no servidor como é óbvio.
Como o que me pareceu que o dkueti queria fazer era apenas a parte do resultado por isso é que disse que nunca poderia correr do lado do cliente.
Sim, em principio deve usar NTP, e tens razão mas, é claro que é preciso algo mais na função de maneira a que torne o número o mais "aleatório" e difícil de prever possível.
mas é claro que vamos estar sempre a falar de algoritmos a não ser que haja um input exterior que seja derivante de um acontecimento físico e já por si impossível de prever.
E quanto ao dizer que não é importante, é porque duvido que neste caso ele precise desses cuidados, e como tall, já estamos a sair do on-topic