Mirando se Aprende.......... (Ejemplos Java)

Iniciado por alvk4r, 29 Junio 2007, 15:42 PM

0 Miembros y 1 Visitante están viendo este tema.

alvk4r

Bueno, se que existe un metodo al que le pasas el array, y este lo ordena, pero no lo recuerdo, no obstante, conocer este algoritmo no esta de mas.
El poder corrompe, el poder absoluto corrompe absolutamente.

marioly

Cita de: alvk4r en  2 Julio 2007, 14:16 PM
Vaya, vaya marioly, me estas molestando, ya vi que sucedio con CasiDiablo en un post del 17 de junio. Haces aportes ademas de criticas?
Si :)
malo que seas tan poco receptivo a criticas u.u, si esperas solo respuestas con "que buen post!" que aburrido, es un poco mediocre, no esperar mejorar con los comentarios u opiniones de los demas, lo que te dije es cierto y no era en mal plan, un metodo tan rigido no es tan bueno.., tener que escibir mas de 300 numeros no es muy practico, intentas enseñar y eso es bueno, pero en java una parte primordial es hacer las cosas practicas, con poco code y reutilizable, que haga lo que debe hacer sin tanta complicacion :) .. sin comentar que el code tiene un margen de error.., asi que es grande e impreciso.
Para mostrar la utilizacion de arrays existen otras formas :P

Citar
Cielos!!! me siento un poco corrido, no acostumbro a hablarle asi a una dama, lo siento marioly, pero solo te pido que seas mas cuidadosa con tus criticas..........
Lo soy, vuelve a leer mi post, fui directa y amable, no dije una mentira, no te insulte ni intente menospreciar tu trabajo, hice una critica solamente, pero (y otra vez) lastima que muchos sean tan poco receptivos a los consejos y criticas  :-\

alvk4r

Cita de: marioly en 30 Junio 2007, 02:25 AM
partiendo de la idea de que un numero primo es divisible  per se y su unidad :)
En eso no te falta razon. Los numeros del array los obtuve de esa forma. Pero imaginate si quisiera saber si el numero 42563645 es primo, deberia dividirlo por los 42563644 numeros anteriores? Creeme, demoraria mucho, y en todo caso, como me ha pasado muchas veces con este tipo de bucles, se bloquea la aplicacion... Imagina entonces que para la criptografia fuerte se usan numeros primos de 80 y mas cifras... Oyee, eso es un numerazo, y realmente lo que se hace es un test de primalidad, que basicamente consiste en:

1. Efectuar la division por todos los numeros primos menores que 2000.
2. Si pasa el test, aplicar el test de Rabin-Miller un x numero de veces.

Entre mas veces se haga el test de Rabin-Miller, mas seguros estaremos de si el numero es primo o no. Hay algunos programas que lo efectuan 20 o mas veces.
El poder corrompe, el poder absoluto corrompe absolutamente.

alvk4r

#13
Uniendo los dos programas, el que use para generar el array y el primecheck, no tendrias que escribir los 300 numeros, ademas, no los escribi, use una macro en el Notepad++ colocarlos de esa forma... (Copie de la consola y luego los pegue en el Notepad++):D
Siguiendo la logica de cada numero primo es divisible solo por si mismo, hubiera podido obtener el array usando un bucle, como ya dije, pero entonces el programa se me complicaba y se hacia mas dificil de entender....

Otra cosa, cortemosla por aqui, te pedi disculpas por ser tan brusco... vale??? Hice este tema para poner ejemplos especificos y no para ir lanzando puyas.... ciertamente me molesto que los 7 post tuyos que me tope eran criticando el trabajo de otros... pero luego vi que tenias razon en parte... si quieres aportar ejemplos, bienvenida!!!!!! si haces una critica constructiva... hazla, pero valida tu critica: si dices que un programa no debe ser asi,o que debio tener esto  o aquello, escribe el programa tal y como crees que sea correcto... creeme, de esa forma asimilare mejor tus criticas, y no solo yo...
Hay un refran que aparece en el Quijote que reza:
"Que el montar caballos a unos hace caballeros y a otros caballerizos"
Y creeme, si validas tus criticas haciendo un aporte... se te puede considerar como una persona critica... si criticas sin mas no mas, pasas a ser lo que aca en Cuba llamamos una criticona....

Anda... hagamos las paces...
Mira, si crees que puedes contribuir en algo, hazlo, me ayudaras a mi, te ayudaras a ti, y a los que lean los post...

El poder corrompe, el poder absoluto corrompe absolutamente.

alvk4r

Alguien sabe como implementar la solucion de ecuaciones de la forma mx2+px+q???
Hace algun tiempo tuve un tutorial de C++ llamado "el diario de Peter Glass", alli venia un programa para esto... en tanto lo busco y lo paso a Java, alguien tiene una idea de como puede hacerse....???
Ya busque en el foro y nada...
El poder corrompe, el poder absoluto corrompe absolutamente.

alvk4r

Bueno, no recuerdo si era aca o en el foro de C++, alguien inquiriendo por un programa que permitiese cifrar usando el algoritmo de base64. Aca les dejo un ejemplo que saque del libro Java Cryptography. Aunque la clave la genera y guarda en un fichero, y solo cifra cadenas pasadas como argumentos al programa, es facilmente modificable, para que introduzcamos nosotros la llave, y en vez de cifrar/descifrar argumentos de la linea de comandos, hagamos eso con ficheros...

Código (java) [Seleccionar]

//Fuente: Java Cryptography
//Uso:
      /* cifrar:
            java SecretWriting -e [cadena_texto_plano]
          descifrar:
            java SecretWriting -e [cadena_texto_cifrada]
      */
import java.io.*;
import java.security.*;
import javax.crypto.*;
import sun.misc.*;
public class SecretWriting {
  public static void main(String[] args) throws Exception {
// Check arguments.
    if (args.length < 2) {
      System.out.println("Uso: SecretWriting -e || -d [text]");
      return;
    }
// Get or create key.
    Key key;
    try {
      ObjectInputStream in = new ObjectInputStream(
      new FileInputStream("SecretKey.ser"));
      key = (Key)in.readObject();
      in.close();
      }
    catch (FileNotFoundException fnfe) {
      KeyGenerator generator = KeyGenerator.getInstance("DES");
      generator.init(new SecureRandom());
      key = generator.generateKey();
      ObjectOutputStream out = new ObjectOutputStream(
      new FileOutputStream("SecretKey.ser"));
      out.writeObject(key);
      out.close();
    }
// Get a cipher object.
    Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
// Encrypt or decrypt the input string.
    if (args[0].indexOf("e") != -1) {
      cipher.init(Cipher.ENCRYPT_MODE, key);
      String amalgam = args[1];
      for (int i = 2; i < args.length; i++)
        amalgam += " " + args[i];
      byte[] stringBytes = amalgam.getBytes("UTF8");
      byte[] raw = cipher.doFinal(stringBytes);
      BASE64Encoder encoder = new BASE64Encoder();
      String base64 = encoder.encode(raw);
      System.out.println(base64);
    }
    else if (args[0].indexOf("d") != -1) {
      cipher.init(Cipher.DECRYPT_MODE, key);
      BASE64Decoder decoder = new BASE64Decoder();
      byte[] raw = decoder.decodeBuffer(args[1]);
      byte[] stringBytes = cipher.doFinal(raw);
      String result = new String(stringBytes, "UTF8");
      System.out.println(result);
    }
  }
}
El poder corrompe, el poder absoluto corrompe absolutamente.

egyware

Cita de: alvk4r en  2 Julio 2007, 18:59 PM
Bueno, se que existe un metodo al que le pasas el array, y este lo ordena, pero no lo recuerdo, no obstante, conocer este algoritmo no esta de mas.

Si exite uno yo tampoco me acuerdo como se llama pero la lista de array a ordenar debe implementar Comparable y ese implementa un metodo llamado int compareTo(object  o) bueno ahi uno especifica como decir si es igual o mayor o menor (0 para igual  1 para mayor y -1 menor) y es algo asi bueno estan buenos tus ejemplos no los habia visto bien