Matlab - Encontrar los 4 ultimos digitos de un vector de 8 digitos

   
Vista:
Imágen de perfil de Ariel Riquelme

Encontrar los 4 ultimos digitos de un vector de 8 digitos

Publicado por Ariel Riquelme (1 intervención) el 28/08/2015 16:30:23
Buenas Disculpen;

Estoy desarrollando ejercicio que nos solicitaron resolver que trata sobre el metodo cuadrado medio por medio de un vector.

Bueno mi consulta es como puedo hallar los ultimos cuatro numeros de ese vector y si en el caso de que estos sean ceros reemplazarlos por un valor aleatorio de 4 digitos.

Este es el codigo que implemente:

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
46
47
48
49
50
51
**********************************
 private void prueba() {
        if (semilla.getText().length() > 0 && Integer.parseInt(semilla.getText()) > 999 && Integer.parseInt(semilla.getText()) <= 10000) {
            Searchr.init();
 
            boolean is_number = true;
 
            try {
                int a;
                a = Integer.parseInt(semilla.getText().toString());
            } catch (java.lang.NumberFormatException nfe) {
                JOptionPane.showMessageDialog(rootPane, "No se puede procesar tu entrada, debes escribir caracteres numericos !");
                is_number = false;
            }
 
            if (is_number == true) {
                modelo = new DefaultTableModel();
 
                int xaux;
                String cadena = "", cadena1 = "";
                String[] columnas = {"n", "X0", "Operacion", "RND"};
                modelo.setColumnIdentifiers(columnas);
                boolean t = true;
                int op = Integer.parseInt(semilla.getText()), op1 = 0;
 
                for (int i = 0; i < Integer.parseInt(cant_numeros.getText()); i++) {
//                int op = Integer.parseInt(semilla.getText())*Integer.parseInt(semilla.getText());
                    op1 = op * op;
                    cadena1 = String.valueOf(op1);
                    while (cadena1.length() < 8) {
                        cadena1 = 0 + cadena1;
                    }
                    int longitud = cadena1.length();
                    System.out.println("LONGITUD: " + longitud);
                    cadena = cadena1.substring(2, 6);
                    System.out.print("CADENA :" + cadena);
                    modelo.addRow(new Object[]{contador, op, cadena1, cadena});
                    op = Integer.parseInt(cadena);
//
                    contador++;
                }
                grilla.setModel(modelo);
            }
        } else if (semilla.getText().length() == 0) {
            JOptionPane.showMessageDialog(rootPane, "No debes dejar el campo de semilla vacio.");
        } else if (Integer.parseInt(semilla.getText()) <= 999 || Integer.parseInt(semilla.getText()) >= 10000) {
            JOptionPane.showMessageDialog(rootPane, "El campo de la semilla debe ser de 4 digitos");
        }
    }
 
**********************************


Espero puedan ayudarme.

Saludos
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
Imágen de perfil de Royeth

Encontrar los 4 ultimos digitos de un vector de 8 digitos

Publicado por Royeth jesus.royeth@gmail.com (749 intervenciones) el 29/08/2015 17:37:07
en este caso debes usar las conversiones de variables que tiene Java, Double.parseDouble , toString, etc para sustraer los 4 últimos dígitos como substring , luego colocas el condicional que es sencillo y generas el random con (int)(rnd.nextDouble() * 9); para cada posición , es decir, valores comprendidos entre 0 y 9


Saludos
https://www.facebook.com/royethmatlab/
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
Imágen de perfil de ronald

Encontrar los 4 ultimos digitos de un vector de 8 digitos

Publicado por ronald (7 intervenciones) el 01/09/2015 20:39:05
Amigo, para conseguir los ultimos cuatro digitos de un vector los puedes hacer de esta manera, no voy a mirar tu codigo te voy a dar algunas herramientas.

ejemplo:
>> e=[ -1 1 -5 2 3]
%si hacer el siguiente comando veras cuales son los ultimos cuatro numeros (debes conocer el tamaño del vector)

>> e(2:5)
ans =

1 -5 2 3
%para conocer el tañano del verctor

>>talla=size(e)
ans =

1 5
%quiere decir 1 fila y 5 columnas, necesitamos guardar que son 5 columnas

>> tamaño=talla(end)

ans =

5

%bueno ahora tienes que restar el tamaño con 4 para saber desde donde debes comparar los numeros

>> guia=tamaño-4

%ahora vas comparando los numeros con unos if
contador=0
for i= guia:tamaño

contador=contador+1;

a=e(i)
if a==0
a= 10*rand(1,1);
end

if contador==1
b=e(i)
if b==0
b= 10*rand(1,1);
end
end

if contador==2
c=e(i)
if c==0
c= 10*rand(1,1);
end
end


if contador==3
d=e(i)
if d==0
d= 10*rand(1,1);
end
end

end


%espero que sirva de su ayuda
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