Ir para conteúdo

POWERED BY:

Arquivado

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

AspAL

Função RND() escolhe um banner mais que outro

Recommended Posts

Galera, negócio é o seguinte...

 

A função RND(), para rotacionar os banners do meu site, escolhe sempre mais um banner que outro. Pq isso acontece?

 

Eu coloco os registros dentro de um array, e mando ele selecionar um banner. Mas ele sempre seleciona mais um do que outro.

 

Como resolvo isso?

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

é randomico

 

nao significa que cada ocorrenia será diferente e que no fim de x ocorrencias os numeros de exibições se equivalerão

 

numa situação mais ao extremo poderia ocorrer de repetir mil vezes o mesmo, isto nao é impossivel, pode até ser improvavel

 

o que pode fazer é a cada exibição remover o item do array ai sim nao repetirá

Compartilhar este post


Link para o post
Compartilhar em outros sites

é randomico

 

nao significa que cada ocorrenia será diferente e que no fim de x ocorrencias os numeros de exibições se equivalerão

 

numa situação mais ao extremo poderia ocorrer de repetir mil vezes o mesmo, isto nao é impossivel, pode até ser improvavel

 

o que pode fazer é a cada exibição remover o item do array ai sim nao repetirá

hum... é, isso que você sugeriu é uma saída, mas pensando aqui cheguei a outra conclusão... vi que é mais fácil ele escolher o primeiro id inserido no array, depois o segundo, e assim por diante...

 

então já que a probabilidade de escolher o primeiro é maior (apesar de teoricamente ser aleatório), vou ordenar o array inserindo primeiro o comercial de menor acesso, e assim por diante, até que o último seja o que tenha o maior acesso...

 

acho q pode funcionar! ;)

 

vou testar

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso é um erro

 

se voce esta fazendo correto as probabilidaes sao iguais

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso é um erro

 

se voce esta fazendo correto as probabilidaes sao iguais

o código está correto, e mesmo estando correto, me diz então pq em 1 semana ele exibiu 595 vezes um banner, 12443 outro e 53648 outro?

 

abaixo segue o código (o laço while serve pra verificar umas restrições. O randomize tá no final):

 

<%
data_hoje = ((ano_hoje*12)*30) + ((mes_hoje)*30) + dia_hoje
	
while not RS.eof
	data_fim = ((CInt(RS("ano_fim"))*12)*30) + CInt(RS("mes_fim")*30) + CInt(RS("dia_fim"))
	dias_restantes = data_fim - data_hoje
	
	if RS("LIMITARCLICKS")="sim" then
	LIMITE = Cint(RS("LIMITEDOSCLICKS")) - CINT(RS("CLICKS"))
		if limite > 0 then
			sPalavras = sPalavras + RS("BANNER") + ","
		end if
	end if
	
	if RS("LIMITARDATA")="sim" then
		if dias_restantes > 0 then
			sPalavras = sPalavras + RS("BANNER") + ","
		end if
		
		if dias_restantes = 0 then
			sPalavras = sPalavras + RS("BANNER") + ","
		end if
	end if
	
	rs.movenext
wend

Dim sPalavras
Dim aryPalavras

AryPalavras = Split(sPalavras,",")
BANNER = ""
while BANNER=""
randomize
BANNER = AryPalavras(CInt(uBound(AryPalavras) * rnd))
wend
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os numeros nao sao iguais porque sao randomicos

 

O nome ja diz tudo

 

Poderia ter exibido um milhao de vezes um e nenhum outro, é possivel mas é improvavel como falei antes

 

Para evitar numeros diferentes de exibição voce precisa interferir no codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

e como um sorteio

sorteio = sorte

 

como o mario disse, o mesmo pode se repetir inumeras vezes, dependerá da qtdade de banners, pois ira alterar a probabilidade

 

 

no fundo você nao quer exibir de forma aleatoria e sim um de cada vez... é isso?

você pode fazer exibir um banner, depois outro, depois outro, de forma sequencial, basta gravar num cookie um valor e somando usando o id do banner

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.