Java - Valores de pi

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

Valores de pi

Publicado por george (3 intervenciones) el 24/10/2018 13:23:38
Hola .. necesito un programa que me genere de una planilla excel , 10000 valor a la vez..
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
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Valores de pi

Publicado por Billy Joel (875 intervenciones) el 24/10/2018 16:16:45
Que tal George,
Podrías replantear la pregunta, quiero ayudarte pero no comprendo lo que quieres. Cuando dices: una plantilla excel y X valor a la vez
No estoy seguro si quieres un programa que genere un archivo de tipo excel, que contenga X valores tipo Integer, Double, String....
Podrías ser mas claro con el planteamiento para darte una solución concreta.

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
sin imagen de perfil
Val: 5
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

Valores de pi

Publicado por george (3 intervenciones) el 24/10/2018 16:45:20
Hola Billy
Genero numeros en planilla excel (segun ejemplo) y necesito sus valores de pi, con nueve digitos..si necesitas que amplie mas la informacion me lo pides...de antemano .. muchisimas gracias por la atencion
Jorge
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 Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Valores de pi

Publicado por Billy Joel (875 intervenciones) el 24/10/2018 17:00:14
Parece que el archivo que adjuntaste está dañado.
Podrías subir el ejemplo texto o un screenshot
10-24-2018-09-55-30-a.m
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 Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Valores de pi

Publicado por Billy Joel (875 intervenciones) el 25/10/2018 21:09:52
Que tal George,
te confieso que me ha costado esto y supongo que por no terminar de entender el problema. Básicamente estuve tratando de calcular el valor de Pi pero esto era un proceso muy engorroso y a pesar de dejar calculando el valor por media hora ni siquiera se aproximaba al valor de 3.141592653589793238462643383279502884197169399375105.... Entonces comprendí que debía conseguir los dígitos de Pi de algún lugar. Fui a https://www.piday.org/million/ le dí hasta el final hasta que dejó de cargar y copié y pegué los dígitos en un archivo plano (txt) y lo guardé con el nombre de pi.txt. Esto lo puedes hacer tu o descargarlo del siguiente link https://drive.google.com/open?id=1B8GUteJYdij3-kk1h2eekVN6xsll7wSK

LzNqyUl18TkbuSZlkL3AkccvOiwnPKFUOC53LzUB2Um2PVedwo4tLlVyyMW5UkoyqOcO3UpYxsuqoNq25Lf15gFWaRW2r5FCfhw=w1341-h154-no

Ese archivo lo cargo leo con Java y lo meto en una variable String, y es a través de esa variable que hago uso de métodos de busqueda como indexOf y lastIndexOF; También utilizo el método de substring para optener los dígitos hacia la izquierda y derecha

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
 
/**
 *
 * @author billy.johnson
 */
public class SearchPi {
 
    public static final String PI_FILE_PATH = "C:\\pi.txt";
 
    /**
     * Abre un archivo con los dígitos de PI
     *
     * @return Devuelve el contenido del archivo que contiene los dígitos de PI
     * (PI_FILE_PATH)
     */
    public String readPi() {
        File archivo;
        FileReader fr = null;
        BufferedReader br;
        String pi = "";
        try {
            archivo = new File(PI_FILE_PATH);
            fr = new FileReader(archivo);
            br = new BufferedReader(fr);
 
            // Lectura del fichero
            String linea;
            while ((linea = br.readLine()) != null) {
                pi += linea;
            }
        } catch (IOException e) {
            e.printStackTrace(System.out);
        } finally {
            try {
                if (fr != null) {
                    fr.close();
                }
            } catch (IOException e2) {
                e2.printStackTrace(System.out);
            }
        }
        return pi;
    }
 
    public static void addToIndexs(List<String[]> indexs, String pi, String q, int index) {
        String anteriores, posteriores;
        if (index < 9) {
            anteriores = pi.substring(0, index);
        } else {
            anteriores = pi.substring((index - 9), index);
        }
        if (q.length() + index + 9 > pi.length()) {
            posteriores = pi.substring(q.length() + index);
        } else {
            posteriores = pi.substring(index + q.length(), index + q.length() + 9);
        }
        indexs.add(new String[]{String.valueOf(index), anteriores, posteriores});
    }
 
    public static void main(String[] args) {
        SearchPi searchPi = new SearchPi();
        String pi = searchPi.readPi();
        if (pi.isEmpty()) {
            System.out.println("Parece que no se pudo encontrar el archivo con los dígitos de Pi");
        } else {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            Long q;
            try {
                System.out.println("Introduzca el número que desea buscar dentro de PI: ");
                q = Long.parseLong(br.readLine());
            } catch (IOException | NumberFormatException ex) {
                q = 0L;
                ex.printStackTrace(System.out);
            }
            System.out.println("El número que se buscará en la serie será: " + q);
            if (q.compareTo(0L) > 0) {
                if (pi.contains(q.toString())) {
                    List<String[]> indexs = new ArrayList();
                    int index = pi.indexOf(q.toString());
                    int last = pi.lastIndexOf(q.toString());
                    if (index == last) {
                        addToIndexs(indexs, pi, q.toString(), index);
                    } else {
                        addToIndexs(indexs, pi, q.toString(), index);
                        while (index <= last) {
                            index = pi.indexOf(q.toString(), index + 1);
                            if (index == -1) {
                                break;
                            } else {
                                addToIndexs(indexs, pi, q.toString(), index);
                            }
                        }
                    }
                    System.out.println("cantidad de indices encontrados: " + indexs.size());
                    System.out.println("a continuación la lista de indices encontrados: ");
                    System.out.println("index\tanteriores\tposteriores");
                    indexs.forEach((i) -> {
                        System.out.println(i[0] + "\t" + i[1] + "\t" + i[2]);
                    });
 
//                    for (String[] i : indexs) {
//                        System.out.println(i[0] + "\t" + i[1] + "\t" + i[2]);
//                    }
                } else {
                    System.out.println("Parece que el número ingresado no se encuentra dentro de los dígitos que tenemos de PI");
                }
            } else {
                System.out.println("Parece que has introducido un número incorrecto");
            }
        }
    }
}

Para una busqueda de el número 12345 esta es la respuesta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Introduzca el número que desea buscar dentro de PI:
12345
El número que se buscará en la serie será: 12345
cantidad de indices encontrados: 8
a continuación la lista de indices encontrados:
index	anteriores	posteriores
49703	523092666	888731028
181677	653977165	743403044
224817	655090811	990450064
447857	472735140	502046290
538332	115712614	364963900
723366	220130494	535778954
766637	544029568	344894693
814214	606991340	566186600
BUILD SUCCESSFUL (total time: 3 seconds)

Para esto lo trabajé con un archivo que tuviera un millón de dígitos.

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