FoxPro/Visual FoxPro - Numero al azar que no se repita en rdn

 
Vista:

Numero al azar que no se repita en rdn

Publicado por Cesar Fuenzalida (52 intervenciones) el 05/05/2004 17:12:46
Hola, necesito generar 20 numeros al azar, pero NO se deben repetir, ejemplo : 5,6,7,10,159,10, en este caso se repite el 10.

Este es el codigo que tengo :

for a= 1 to 20
res = int(500*RAND())
?res
next a
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Numero al azar que no se repita en rdn

Publicado por Roman Suazo (2723 intervenciones) el 05/05/2004 18:35:19
Cada codigo que generes lo metes en un arreglo de una dimension, cuando generes el
proximo verificas que no este en el arreglo, en caso contrario repites el codigo hasta
que no salga ningun repetido. En tu caso es mejor usar un DO WHILE en lugar del FOR
.Para buscar valores en un arreglo usa la funcion ASCAN(). Puedes usar una cursor
tambien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Numero al azar que no se repita en rdn

Publicado por Marvin Callejas (19 intervenciones) el 05/05/2004 19:39:35
Roman Suazo:
El párrafo que a continuación transcribo, lo retome de la ayuda de VFP 6.0: "Para obtener la serie más aleatoria de números, utilice inicialmente RAND( ) con un argumento negativo y, después, ejecute RAND( ) sin ningún argumento."

Te agradecería compartieras tú experiencia si funciona.

Saludos cordiales.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Numero al azar que no se repita en rdn

Publicado por Roman Suazo (2723 intervenciones) el 06/05/2004 03:24:14
Yo casi no uso esa funcion asi que... segun las pruebas que hice es casi lo mismo en cuanto a resultados, ya sea con semilla positiva o negativa (igual se generan numeros aleatorios), creo que el asunto es que las personas que hicieron la docmentacion no se dieron la molestia en explicar en realidad cual es la diferencia entre los dos casos, es decir, que pasa tras bambalinas. Si ellos dices que es mejor usar semilla negativa, entonces semilla negativa sera...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No FUNCIONA

Publicado por Cesar Fuenzalida (52 intervenciones) el 07/05/2004 15:21:58
No funciona, como puedo hacer un random, sin que se repitan los numeros, den un ejemplo por favor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Numero al azar que no se repita en rdn

Publicado por luciano (2 intervenciones) el 30/06/2016 06:16:44
hola, respondo bastante tarde, pero acabo de ver esta pregunta
una vez me pidieron hacer un bolillero para un sorteo tipo quini 6 asique el resultado fue el siguiente
bastante sencillo , pero puede servirles:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
RAND(-1)
 
v1=INT(RAND()*45)
 
DO WHILE .t.
 v2=INT(RAND()*44)
 IF v2<>v1
   EXIT
 ENDIF
ENDDO
 
DO WHILE .t.
 v3=INT(RAND()*43)
 IF v3<>v1 .and. v3<>v2
   EXIT
 ENDIF
ENDDO
 
DO WHILE .t.
 v4=INT(RAND()*42)
 IF v4<>v1 .and. v4<>v2 .and. v4<>v3
   EXIT
 ENDIF
ENDDO
 
DO WHILE .t.
 v5=INT(RAND()*41)
 IF v5<>v1 .and. v5<>v2 .and. v5<>v3 .and. v5<>v4
   EXIT
 ENDIF
ENDDO
 
DO WHILE .t.
 v6=INT(RAND()*40)
 IF v6<>v1 .and. v6<>v2 .and. v6<>v3 .and. v6<>v4 .and. v6<>v5
   EXIT
 ENDIF
ENDDO
 
thisform.text1.value=v1
thisform.text2.value=v2
thisform.text3.value=v3
thisform.text4.value=v4
thisform.text5.value=v5
thisform.text6.value=v6

de esta manera nunca se repiten los numeros
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar