hola buenas tenía que hacer un ejercicio en clase en el cual
se te generaba un número aleatorio y que luego evitases que se repitieran.

el método que tenias que desarrollar trataba de que después de que
se te generaze el número de longitud 5, evitases que hubiesen 2 o mas repetidos
a base de bucles

pues lo que se me ocurrio fue ir directamente a crear un generador de numeros no repetidos de longitud 5 que pudiesen contener desde el 0 al 9

la posibilidad de que te salga la misma cifra es de 120 a 1

Código: Seleccionar todo

class randomv2{
    
    static int u=0;
    static int longitud = 0;
    static String contenedor = "";
    
    private static String[] Primero(){
        int[] numerosAleatorios = new int[5];
        int j=0, k=2;
        String aux="0";
        for(int i=0;i<5;i++){
            numerosAleatorios[i] = (int)(Math.random()*k)+j;
            j++;j++;
        }
        aux=String.valueOf(numerosAleatorios[0]+""+numerosAleatorios[1]+""+numerosAleatorios[2]+""+numerosAleatorios[3]+""+numerosAleatorios[4]);
        Segundo("",aux);
        
        String[] items = contenedor.split(" ");
        longitud = items.length-1;
        return items;
    }
    private static void Segundo(String cad_I, String cad_D){
        if (cad_D.length() == 1)
        {
            contenedor+=(cad_I + cad_D + " ");
            return;
        }
        for (int i=0; i < cad_D.length(); i++)
        Segundo(cad_I + cad_D.substring(i,i+1), cad_D.replace(cad_D.substring(i, i+1),""));
        return;
    } 
    static void imprimir(){
        String[] randomDiferentes= Primero();
        int var = (int)(Math.random()*longitud)+1;
        
        System.out.println(randomDiferentes[var]);
    }
}
Salu2!
Imagen

(cuanto más sabes, más cuenta te das de lo poco que sabes).

Mostrar/Ocultar

Something like this?

Código: Seleccionar todo

Public Function RandomNumber() As Long
    Dim sHelp As String
    Dim sNumber As String
    Dim sRandomNumber As String
    Dim iPos As Integer
    Dim i As Integer
    
    sHelp = "123456789"
    
    Randomize Timer
    
    iPos = Rnd * (Len(sHelp) - 1) + 1
    
    sRandomNumber = Mid$(sHelp, iPos, 1)
    
    Mid$(sHelp, iPos, 1) = Chr$(48)
    
    For i = 2 To 5
        
        iPos = Rnd * (Len(sHelp) - 1) + 1
        
        sNumber = Mid$(sHelp, iPos, 1)
        
        sHelp = Replace$(sHelp, sNumber, vbNullString)
        
        sRandomNumber = sRandomNumber & sNumber
    Next
    
    RandomNumber = CLng(sRandomNumber)
    
End Function
P.D: Cuando aprenda Strings y Arrays en C++ hago una función :P

Saludos!
github.com/Slek-Z
Responder

Volver a “Fuentes”