Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-10-2013
XavierAramayo XavierAramayo is offline
Registrado
NULL
 
Registrado: oct 2013
Posts: 2
Poder: 0
XavierAramayo Va por buen camino
Problema al generar primos en Delphi

Hola,lo que ocurre es que cuando ejecuto mi programa genera el numero de primos que le pedi pero solamente a partir del numero ingresado,es decir,si coloco un valor de n=7, los numero que me muestra son 7 11 13 17 19 23 29, o si ingreso 4 seria 5 7 11 13, lo que yo qeria conseguir era ungresar un numero n,y que me mostrase los n primeros numeros primos pero tengo ese problema,les agradezco de antemano.

el programa es el siguiente

Código Delphi [-]
procedure TForm3.Button1Click(Sender: TObject);
var p,q,r,i,cp,s:integer;  res:string;
  j: Integer;
begin
r:=strtoint(edit1.Text);s:=r;
   p:=2;cp:=0;
while cp menor s do
      begin
       q:=1;
       for i := 2 to s-1 do
          begin
            if p mod i =0 then
                 q:=0;
          end;
       if q=1 then
             begin
               cp:=cp+1;

               p:=p+1;
               res:=res+' '+inttostr(p);
                label1.Caption:=res;
             end
               else
             p:=p+1;
      end;

end;

end.
Responder Con Cita
  #2  
Antiguo 05-10-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
XavierAramayo,

Cita:
Empezado por XavierAramayo
...ingresar un número n y que me mostrase los n primeros números primos...
¡Bienvenido al Club Delphi!

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Genera n números primos ( n <= MaxInt )
function GeneratorNumberPrime(Limit : Integer) : TStringList;
var
   n,i,c : Integer;
   rn : integer;
   NumberPrime : TStringList;
   Prime : Boolean;

begin

   n := 3;
   NumberPrime := TStringList.Create;
   NumberPrime.Add('1');
   NumberPrime.Add('2');
   c := 0;

   While (c <= Limit - 3) do
   begin

      Prime := True;
      rn := Trunc(sqrt(n));

      for i := 2 to rn do
      begin
         if (n mod i) = 0 then
         begin
            Prime := False;
            break;
         end;
      end;

      if Prime then
      begin
         NumberPrime.Add(IntToStr(n));
         Inc(c);
      end;

      Inc(n,2);

   end;

   Result := TStringList.Create;
   Result.Assign(NumberPrime);
   NumberPrime.Free;

end;

// Genera n números primos, por defecto o error se generan 10.
procedure TForm1.Button1Click(Sender: TObject);
var
   Limit : Integer;
begin
   Limit := StrToIntDef(Edit1.Text,10);
   ListBox1.Items.Assign(GeneratorNumberPrime(Limit));
end;

end.
El código anterior genera n números primos dado un número límite de la función generatriz, como se muestra en la siguiente imagen:



El ejemplo esta disponible en el link: http://terawiki.clubdelphi.com/Delph...mber+Prime.rar

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 05-10-2013 a las 07:59:40.
Responder Con Cita
  #3  
Antiguo 05-10-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
XavierAramayo,,

Continuación del Msg #2:

Cita:
Empezado por Wikipedia:

En matemáticas, un número primo es un número natural mayor que 1 que tiene únicamente dos divisores distintos: él mismo y el 1. Los números primos se contraponen así a los compuestos, que son aquellos que tienen algún divisor natural aparte de sí mismos y del 1. El número 1, por convenio, no se considera ni primo ni compuesto.

Tomado de: http://es.wikipedia.org/wiki/N%C3%BAmero_primo
En función de la definición anterior, el código del Msg #2 se redefine a continuación:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Genera n Números Primos ( n <= MaxInt )
function GeneratorNumberPrime(Limit : Integer) : TStringList;
var
   n,i,c : Integer;
   rn : integer;
   NumberPrime : TStringList;
   Prime : Boolean;

begin

   NumberPrime := TStringList.Create;
   c := 0;
   n := 2;

   repeat

      Prime := True;
      rn := Trunc(sqrt(n));

      for i := 2 to rn do
      begin
         if (n mod i) = 0 then
         begin
            Prime := False;
            break;
         end;
      end;

      if Prime then
      begin
         NumberPrime.Add(IntToStr(n));
         Inc(c);
      end;

      Inc(n);

   until (c = Limit);

   Result := TStringList.Create;
   Result.Assign(NumberPrime);
   NumberPrime.Free;

end;

// Genera n números primos, por defecto o error se generan 10.
procedure TForm1.Button1Click(Sender: TObject);
var
   Limit : Integer;
begin
   Limit := StrToIntDef(Edit1.Text,10);
   ListBox1.Items.Assign(GeneratorNumberPrime(Limit));
end;

end.
El código anterior, genera n números primos desde el 2 hasta un máximo definido como parámetro en la función generatriz, como se muestra en la siguiente imagen:



El ejemplo esta disponible en el link: http://terawiki.clubdelphi.com/Delph...me_Numbers.rar

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 05-10-2013 a las 18:36:13.
Responder Con Cita
  #4  
Antiguo 05-10-2013
XavierAramayo XavierAramayo is offline
Registrado
NULL
 
Registrado: oct 2013
Posts: 2
Poder: 0
XavierAramayo Va por buen camino
Muchas gracias [nlsgarcia],ya lo consegui,gracias!
Responder Con Cita
  #5  
Antiguo 08-10-2013
Victor Luis Victor Luis is offline
Miembro
NULL
 
Registrado: oct 2013
Posts: 25
Poder: 0
Victor Luis Va por buen camino
Mejorar el tiempo de busqueda de Numeros Primos

Holas...

Muy bueno el codigo de Garcia, solo que esta limitado a busquedas menores, si ponemos n=1.500.000 tardara un poco mas de 6 minutos que seria encontrar primos hasta 25 millones como limite de busqueda y si n=3.001.146 para encontrar numeros primos hasta 50.000.000 tarda mas de 20 minutos y logicamente al ir incrementando esto se demora cada vez mas. Esto sucede basicamente por 2 razones: 1) Evaluan todos los numeros naturales secuencialmente, donde se deberia no evaluar numeros que sean multiplos de 2, 3 y 5 que de hecho no son primos. 2) Evaluas si es multiplo cada numero natural desde 2 hasta la raiz cuadrada del numero en evaluacion, donde al incrementarse el numero tambien se incrementan los calculos y el tiempo se alarga de una manera exponencial 2/4/8/16/...

◘ El metodo PRI-BASE genera una secuencia base de numeros naturales donde el 50-75% son casi directamente primos, de los cuales solo hay que depurar los que no son primos. En un Rango de 1 a 50.000.000 busca y saca numeros primos en 24-27 segundos y sacar primos en un rango de 1.000.000.000 lo hace en menos de 9 minutos donde encuentra en promedio 36.500.000 nuevos numeros primos.
○ Este tiempo reducido no solo es por generar la secuencia base de numeros casi primos, sino esencialmente porque no factoriza ni realiza calculos para saber si es multiplo de numeros primos anteriores al numero ni hasta su raiz cuadrada; simplemente determina una secuencia para depurar de la base de numeros generados, eliminando los no primos y guardando los nuevos numeros primos.
► Lo que deben considerar si desean buscar numeros primos grandes, es el metodo, si evaluan para saber si es multiplo de otros primos, elproceso sera lento por los calculos, llegara un momento en que las variables no podran hacer estos calculos y necesitaran mucho espacio en su disco duro o enlazar tipo red varias computadoras para almacenar todos los numeros primos que saquen pues los necesitan para ver si es multiplo entre estos.

◘ La sugerencia esta dada, para que lo tomen en cuenta, sin desmerecer los metodos que proponen y funcionan bien hasta cierto limite; el consejo es para quienes quieran buscar numeros primos con millones de digitos.

Un saludo cordial a todos y sigan adelante...
Responder Con Cita
  #6  
Antiguo 08-10-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y por qué no lo explicas poniendo el código fuente de ejemplo?, así como lo has explicado queda muy "aséptico y vaporoso", pero no vemos nada tangible
Responder Con Cita
  #7  
Antiguo 08-10-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Victor Luis,

Cita:
Empezado por Victor Luis
...el código de Garcia...esta limitado a búsquedas menores...al incrementarse el número también se incrementan los cálculos y el tiempo se alarga de una manera exponencial...Lo que deben considerar si desean buscar números primos grandes, es el método...

...El metodo PRI-BASE genera una secuencia base de números naturales donde el 50-75% son casi directamente primos, de los cuales solo hay que depurar los que no son primos...
Gracias por tus comentarios

En internet conseguí esta referencia al método que sugieres PRI-BASE, al parecer la referencia es de tu autoría y en ella se da a entender que es un procedimiento nuevo que tu desarrollastes y que esperas poder patentar, Pregunto: ¿Es correcto?.

Sería muy interesante conocer más detalles de este método y si es posible ver alguna implementación del mismo, el tema de los números primos es muy importante en matemáticas y su aplicación práctica en métodos de cifrado en informática.

Nelson.
Responder Con Cita
  #8  
Antiguo 09-10-2013
Victor Luis Victor Luis is offline
Miembro
NULL
 
Registrado: oct 2013
Posts: 25
Poder: 0
Victor Luis Va por buen camino
Sobre el Metodo PRI-BASE

Holas Nelson...

Respecto a lo de patentar, busque me dieran sugerencias mas claras de las que encontre y esto porque he ido revisando los metodos publicados en internet desde la criba de Eratostenes hasta los metodos y formulas matematicas que usan para determinar si un numero es o no primo.

◘ Con referencia al metodo PRI-BASE, un hermano mio me dijo una vez que los Incas de Machu-Pichu tenian un metodo con el que obtenian los numeros primos facilmente. Mi pensamiento fue que si ellos no contaban con computadoras ni formulas complejas, como lo podian hacer o tal afirmacion no era cierta.
Antes de saber de la criba de Eratostenes, encontre un metodo para sacar los supuestos primos que se ordenan en columnas, claro que hay varios por depurar. Con ese metodo reduje muchisimo el tiempo de busqueda, por ejemplo hasta el limite de 1 millon encontrar los primos que hay dividiendo y viendo si es multiplo de primos anteriores hasta la raiz cuadrada, tardaba 42 segundos. Aplicando el metodo que mencione, sacaba estos supuestos primos y solo debia depurarlos, sin analizar los demas y el tiempo se redujo a 16 segundos, optimizando un poco lo hacia entre 2-3 segundos.
No se si este metodo lo hicieron ya pero no encontre referencia alguna, de los codigos que publican la mayoria utiliza varios If Then y por referencia se que esto retarda el tiempo de proceso. En este metodo solo usaba 1 If Then que era para finalizar la busqueda.

◘ El Metodo PRI-BASE nace a razon de mejorar el anterior que mencione, donde encontre un modo de obtener los supuestos primos pero mas depurados, por eso los llamo casi primos directos, pues hay pocos por depurar y logicamente el tiempo de proceso se redujo a menos de 1 segundo para un limite de 1 millon.
Dejarlo asi llegaria a lo mismo que los otros metodos, donde uno debe tener a disposicion todos los primos encontrados para factorizar o comprobar que son divisibles. Volviendo a que los Incas no tenian computadoras, encontre la manera directa de depurar los no primos, sin recurrir a todos los primos. Cuando le mando a buscar primos en un rango de 1.000.000.000 el programa solo saca unos datos de algunos primos, entre 50 y 250 a los que llamo activados, ya que luego no necesito volver a leerlos. Esto permite no contar con una super computadora de muchisima memoria en disco duro, solo necesito un archivo de 348 MB donde estan 36 millones de primos para realizar Busquedas con rangos de hasta 1 Billon.
► Encontre una pagina donde por factorizacion evalua si el numero que uno pone es primo o no, donde todos los que fui obteniendo son primos. Baje algunos archivos de listas de primos ya verificados y coinciden con los que voy obteniendo, no conforme con esto hice un procedimiento con el metodo clasico de ver si es divisible entre primos anteriores, los compare y todos coinciden en secuencia y cantidad. Esto me da la seguridad de que el metodo funciona adecuadamente.

◘ Para complementar tu consulta sobre el Metodo PRI-BASE es que el tiempo de busqueda es casi constante y en lugar de alargarse el tiempo de proceso tiende a disminuir, ya que en cada rango buscado encuentra menor cantidad de numeros primos.
Mi Objetivo es determinar cuando ocurre este descenso, ya que hasta ahora no es constante, en ciertos rango aumenta, luego se mantiene y despues disminuye la cantidad de nuevos primos, repitiendose esto pero en forma desordenada.
Otro objetivo es obtener primos gemelos y ver su frecuencia de aparicion, para lo cual el metodo me permite identificar precisamente las posiciones de la secuencia donde estan, si ambos son primos entonces son primos gemelos.

Bueno, esos son algunos detalles del metodo y respecto a publicar el codigo, no lo veo prudente, como dije no he encontrado un metodo similar ... si alguien sabe de uno se lo agradeceria que me lo haga saber.
Con la explicacion dada sera facil que lleguen al metodo, para lo cual deben quitar se su cabeza la factorizacion y la divisibilidad de un numero entre otros primos para saber si este es o no primo. Aunque parezca ilogico, es como funciona el metodo... simple y directo.


Espero haber respondido a la consulta de Nelson... gracias
Responder Con Cita
  #9  
Antiguo 09-10-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Victor Luis,

Cita:
Empezado por Victor Luis
...encontre un modo de obtener los supuestos primos pero mas depurados, por eso los llamo casi primos directos...Cuando le mando a buscar primos en un rango de 1.000.000.000 el programa solo saca unos datos de algunos primos, entre 50 y 250 a los que llamo activados, ya que luego no necesito volver a leerlos. Esto permite no contar con una super computadora de muchísima memoria en disco duro, solo necesito un archivo de 348 MB donde están 36 millones de primos para realizar Búsquedas con rangos de hasta 1 Billon...
Pregunto: ¿Podrías explicar este punto mas detalladamente?.

Cita:
Empezado por Victor Luis
...el tiempo de busqueda (Metodo PRI-BASE) es casi constante y en lugar de alargarse el tiempo de proceso tiende a disminuir, ya que en cada rango buscado encuentra menor cantidad de numeros primos. Mi Objetivo es determinar cuando ocurre este descenso, ya que hasta ahora no es constante, en ciertos rango aumenta, luego se mantiene y despues disminuye la cantidad de nuevos primos, repitiendose esto pero en forma desordenada...
Revisa esta información relacionada al comentario anterior:
Cita:
Empezado por laprovincia
... Los Rodríguez aseguran que no es que ellos hayan descubierto la manera de descifrar estos códigos, pero han podido dar orden a los números primos. "Son aleatorios, no van de uno en uno, de dos en dos, etc. Pues bien, nosotros hemos encontrado un patrón en el que están completamente ordenados"...

Tomado del link: http://www.laprovincia.es/sociedad/2...os/410873.html
Cita:
Empezado por Victor Luis
...respecto a publicar el código, no lo veo prudente, como dije no he encontrado un método similar...
Según entiendo tu método se basa en uno anterior, si te fijas todos los métodos de encriptación y de números primos son públicos (Hasta donde se, con sus excepciones de tipo militar que asumo existirán), sin embargo revisa este link, quizás te interese: http://www.mersenne.org/legal/#awards

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 09-10-2013 a las 22:08:46.
Responder Con Cita
  #10  
Antiguo 10-10-2013
Avatar de Julián
Julián Julián is offline
Merodeador
 
Registrado: may 2003
Ubicación: en mi casa
Posts: 2.019
Poder: 10
Julián Va por buen camino
Cita:
Empezado por Victor Luis Ver Mensaje
Bueno, esos son algunos detalles del metodo y respecto a publicar el codigo, no lo veo prudente, como dije no he encontrado un metodo similar ... si alguien sabe de uno se lo agradeceria que me lo haga saber.
Con la explicacion dada sera facil que lleguen al metodo, para lo cual deben quitar se su cabeza la factorizacion y la divisibilidad de un numero entre otros primos para saber si este es o no primo. Aunque parezca ilogico, es como funciona el metodo... simple y directo.

A mi esto me recuerda al famoso navegador Biyubi
__________________
"la única iglesia que ilumina es la que arde"
Anonimo
Responder Con Cita
  #11  
Antiguo 10-10-2013
Victor Luis Victor Luis is offline
Miembro
NULL
 
Registrado: oct 2013
Posts: 25
Poder: 0
Victor Luis Va por buen camino
Holas Nelson...

Mi hermano menor es tocayo tuyo, su nombre es Nelson.

○ Revise la publicacion de los Rodriguez, donde afirman que los numeros primos son aleatorios y en eso como todos estoy de acuerdo. Ellos afirman haber encontrado un patron en el que estan ordenados... no comprendo bien a que se refieren, la criba de Eratostenes afirma que los tiene ordenados y los vemos en columnas; pero no todos son primos. En mi analisis no me he dedicado a esto porque no soy matematico, encontre muchas maneras de generar primos y descartar los no primos.
Si encontraron el patron es que hay una formula, lo que hasta donde vi, no lo veo tan posible. En la publicacion se pasan a la conjetura mayor de Goldbach, no le veo el problema pues con mi base de primos, hice un procedimiento donde si es posible que un numero par se exprese con la suma de 2 numeros primos.
10.000 59 + 9941 10.002 29 + 9973 10.004 31 + 9973 10.006 83 + 9923 10.008 41 + 9967 10.010 3 + 10007 10.012 3 + 10009 10.014 5 + 10009 10.016 7 + 10009 10.018 11 + 10007 10.020 11 + 10009 10.022 13 + 10009 10.024 17 + 10007 10.026 17 + 10009 10.028 19 + 10009 10.030 23 + 10007 10.032 23 + 10009 10.034 61 + 9973 10.036 29 + 10007 10.038 29 + 10009 10.040 3 + 10037 10.042 3 + 10039 10.044 5 + 10039 10.046 7 + 10039 10.048 11 + 10037 10.050 11 + 10039 10.052 13 + 10039 10.054 17 + 10037 10.056 17 + 10039 10.058 19 + 10039 10.060 23 + 10037 10.062 23 + 10039 10.064 3 + 10061 10.066 5 + 10061 10.068 7 + 10061 10.070 3 + 10067 10.072 3 + 10069
Ahora yo no veo la relacion de esta conjetura, el teorema de Riemann y su patron... esto me gustaria saberlo.

◘ Respecto a los puntos que pides explicarlos, complementare algo mas...
○ Si tomamos un rango de 50.000.000 donde buscar numeros primos, de hacerlo por el metodo clasico, tendriamos que revisarlos todos viendo si son divisibles entre primos anteriores.
○ Mi metodo saca de este rango 13.333.328 a 13.333.336 numeros base, a los que digo casi directos porque comprenden el 26.7% a pedurar y obtener nuevos primos, de los que aproximadamente habran 1.820.010 numeros primos buscando con este rango, donde a un principio son mas y conforme se avanza disminuye la cantidad de nuevos primos.
En porcentajes diria que de los 13.333.328 de numeros base el 13.7% son primos y en el rango de 50.000.000 el 3.6% son primos; lo cual va disminuyendo y debe haber un factor que determina esto, pero continuando la busqueda con el mismo rango, no tiende a disminuir constantemente, hay partes en que como dije anteriormente, aumenta la cantidad de primos, luego se mantiene, disminuye, se mantiene, aumenta y asi.
Esto hasta donde vi no sigue un patron, es aleatorio por lo que espreciso analizar varias busquedas y determinar esto. Mi idea es que hay un punto donde en la busqueda no habra nuevo primo, siendo este limite un punto inicial para evaluar en que rangos se presentan nuevos primos que comparando con el descenso inicial, se pueda determinar un factor o logica que indique determinar la aparicion de numeros primos.

○ Respecto al otro punto, de los 13.333.336 que genera el metodo PRI-BASE hay que depurar mas del 75% los que no son primos. Calculando si son divisibles entre otros primos, aunque se redujo bastante, se tendria que contar o disponer constantemente de los primos encontrados desde inicio, lo cual implica ordenadores de mucha memoria en disco duro y calculos que a la larga seran imposibles de realizar con variables, bueno hasta donde yo sepa.
El Metodo saca una secuencia particular de cada numero primo, a esto lo denomino primos activados, ya que en cada rango buscado, el programa ve que primos activar o sea sacar esa secuencia que no son mas de 10 datos y con estos depura los no primos de los numeros base o casi primos, quedando solo nuevos numeros primos.
Si me he dejado entender, con el metodo no necesito disponer de todos los numeros primos para encontrar nuevos primos, de modo que no se precisa mas que un ordenador con memoria suficiente para archivar los numeros primos. En mi caso guardo en cada archivo en promedio 36.000.000 de numeros primos que resulta de buscar en un rango de 1.000.0000.0000; este archivo ocupa 348 MB, donde esta cantidad de primos por archivo sirven para activar o sea sacar su secuencia para depurar para hacer busquedas de primos mas grandes y como seran cada vez menos, los archivos seran pocos, el tiempo de busqueda mas corto y esa es la base de mi metodo PRI-BASE.

◘ Seria bueno que los Rodriguez expliquen un poco mas sobre su patron y ver si usamos el mismo metodo o hablamos de lo mismo. Como podria mi metod basarse en uno anterior si no describen de que patron hablan, solo lo mencionan y no dan detalles de su logica... no es preciso que digan como; pero seria bueno que aclaren en que se basan, tan solo se pasan a la conjetura de Goldbach que no es teorema como dicen.
Revisando mis apuntes, creo que luego podre encontrar una logica que permita determinar o generar todos los numeros primos o algo mas directo y reducido que lo que hasta ahora saca mi metodo, en lugar de numeros primos base, saque numeros primos directos o la depuracion sea minima.


☼ Bueno Nelson... un gusto intercambiar criterios y gracias por la informacion buscada, lo de la pagina de mersenne esta en ingles y lo tendre que traducir; respecto a lo que dices que los numeros primos son publicos, no comprendo a que te refieres, de encriptacion se muy poco y del metodo de numeros primos tenemos el clasico, el teorema de numeros primos, la factorizacion y si Dios lo permite, encontrare los factores precisos que permitan generar numeros primos de manera directa....

Atte. Victor Luis Arteaga
Responder Con Cita
  #12  
Antiguo 10-10-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Julián Ver Mensaje
A mi esto me recuerda al famoso navegador Biyubi
Es lo que me pareció cuando leí el primer post.
Responder Con Cita
  #13  
Antiguo 10-10-2013
Victor Luis Victor Luis is offline
Miembro
NULL
 
Registrado: oct 2013
Posts: 25
Poder: 0
Victor Luis Va por buen camino
Holas...

Gracias por las novedades que comparten, no sabia del "Nuevo Navegador Mexicano: Biyubi 5.0"

De que serviria publicar el codigo que no es largo ni complicado, si no se nota el interes de compartir criterios al respecto...

Pero si desean verlo busquenlo en Youtube con Metodo PRI-BASE


Sigan adelante con sus proyectos...
Responder Con Cita
  #14  
Antiguo 10-10-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Victor Luis,

Cita:
Empezado por Victor Luis
...Si encontraron el patrón es que hay una formula...Seria bueno que los Rodriguez expliquen un poco mas sobre su patrón...
Revisa esta información:
Cita:
Empezado por Wladimiro Rodríguez, Aitor Rodríguez

“Todo número primo se repite exactamente la misma cantidad de veces y en el mismo orden, dentro del patrón de las sumas de dos números primos”


Tomado del link
: http://www.google.com/url?sa=t&rct=j...,d.eWU&cad=rja
Es de destacar que los autores de esta información no son matemáticos y no hay ninguna información académica que confirme sus resultados.

Cita:
Empezado por nlsgarcia
...Según entiendo tu método se basa en uno anterior...
Cita:
Empezado por Victor Luis
...Como podria mi método basarse en uno anterior si no describen de que patrón hablan, solo lo mencionan y no dan detalles de su lógica...
Cita:
Empezado por Victor Luis
...Antes de saber de la Criba de Eratóstenes, encontré un método para sacar los supuestos primos que se ordenan en columnas, claro que hay varios por depurar. Con ese método reduje muchisimo el tiempo de búsqueda...El Método PRI-BASE nace a razón de mejorar el anterior que mencione, donde encontré un modo de obtener los supuestos primos pero mas depurados...
Este es el origen de mi comentario.

Cita:
Empezado por nlsgarcia
...si te fijas todos los métodos de encriptación y de números primos son públicos (Hasta donde se, con sus excepciones de tipo militar que asumo existirán)...
Cita:
Empezado por Victor Luis
...respecto a lo que dices que los números primos son públicos, no comprendo a que te refieres...
Existen varios algoritmos para el cálculo de números primos disponibles en Internet, revisa esta información:
Lo anterior es la base de mi comentario, buscando un poco en internet se puede hallar más información al respecto.

Cita:
Empezado por Victor Luis
...la pagina de mersenne esta en ingles y lo tendré que traducir...
Te sugiero usar Google Crome para la traducción automática de paginas del Ingles al Español, también es muy útil Google Translate.

Cita:
Empezado por Victor Luis
...y si Dios lo permite, encontrare los factores precisos que permitan generar números primos de manera directa...
Suerte

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 10-10-2013 a las 18:46:01.
Responder Con Cita
  #15  
Antiguo 11-10-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Club Delphi,

Continuación del Msg #3:

Revisen este código:
Código Delphi [-]
program GeneratorPrimeNumbers;

{

Cálculo de Números Primos por el Algoritmo: Criba de Eratóstenes
  
Esta implementación permite calcular un máximo de 87.647.246 Números Primos en un tiempo de
00:02:41:663 sobre una máquina con un Procesador Phenom II X6 1090T a 3.2 GHZ, 4 GB RAM, 3 TB HDD y
OS Windows 7 Profesional x32.
  
El tiempo indicado es el tiempo total del proceso desde que inicia el cálculo hasta que se genera
el archivo de 953 MB con los 87.647.246 Números Primos.

}

uses
   SysUtils, Classes, Dialogs;

var
   Limit, i, j: Integer;
   Numbers: TBits;
   F : TextFile;
   NumberPrime : Integer;
   TI, TF: TDateTime;

begin

   repeat
      try
         Limit := StrToInt(InputBox('Generador de Números Primos', 'Número Primo Máximo a Calcular:', '1000'));
      except
         Limit := 0;
      end;
   until (Limit >= 2) and (Limit <= 2147483615);

   TI := Now;

   Numbers := TBits.Create;

   try

      Numbers.Size := Limit;
      NumberPrime := 0;

      for i := 2 to Limit do
         if not Numbers[i] then
         begin
            j := i * i;
            while (j <= Limit) and (j > 0) do
            begin
               Numbers[j] := True;
               Inc(j, i);
            end;
         end;

      FileMode := fmOpenWrite;
      AssignFile(F, 'NumberPrime.txt');
      Rewrite(F);

      for i := 2 to Limit do
         if not Numbers[i] then
         begin
            Writeln(F, i);
            Inc(NumberPrime);
         end;

   finally

      Numbers.Free;
      CloseFile(F);

   end;

   TF := Now - TI;

   Showmessage(Format('Se Generaron %d números primos en %s',[NumberPrime,FormatDateTime('hh:mm:ss:zzz', TF)]));

end.
El código anterior permite hallar todos los números primos menores que un número natural n en el rango de 2 a 2.147.483.615, por medio del algoritmo de Eratóstenes.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 11-10-2013 a las 08:02:14.
Responder Con Cita
  #16  
Antiguo 11-10-2013
Victor Luis Victor Luis is offline
Miembro
NULL
 
Registrado: oct 2013
Posts: 25
Poder: 0
Victor Luis Va por buen camino
Holas Nelson...

En verdad valoro tu capacidad para obtener la informacion de referencia que adjuntas, por mi parte me quedo atras y en eso te comparo con mi hermano que es ducho para buscar en internet.

Bueno.. a los temas...

○ Sobre la publicacion de los Rodriguez, no lo he leido profundamente ya que no soy matematico con trigonometria medio que me pierdo; pero es una amplia explicacion que relacionan metodos y secuencias con elementos quimicos.

◘ Lo que puedo decirte es que hay un valor casi coincidente a lo que yo manejo; pero la base de su explicacion lo podria decir con lo que se en simples palabras y responder al mismo tiempo que no tiene nada que ver con la criba de Eratostenes, es que con una cantidad de numeros primos que los denomino numeros primos origen, se obtienen los numeros base de todos los numeros primos. Te mencione que en un rango de 50 millones mi metodo saca 13.333.336 (numeros base) los que si pueden ser primos y el resto con seguridad que no son primos. Para obtener esta base se aplica un factor sobre los primos origen y sin calculos, solo con una operacion de manera directa obtengo esta base. No se si se relaciona con Goldbach y Riemann, solo que con un For-Next cargo un vector con estos numeros base para un rango de 50 millones en 3-4 segundos y su depuracion con la extraccion de numeros primos (aprox. 1.800.000) en 7-8 segundos. Creo que cuando termine de encontrar los datos que busco y necesito, mas colaboracion de un matematico se pueda obtener una formula o ecuacion que indique porque estos primos origen son la base de los demas.
○ Para complementar sobre la publicacion de los Rodriguez, no creo en una formula, sino que si hay una secuencia para generar directamente todos los numeros primos. Cuando realizaba uno de los analisis que hice, pues me venia una idea y anotaba datos a buscar, hacia calculos que ni yo recuerdo de que logica venian y terminaba a medias, eso paso con este metodo, que lo deje a medias; pero volviendolo a analizar encontre las secuencias que me faltaban y todo coincidia.
Continuando lo que decia, en un analisis, vi que hay una secuencia que permitiria generar directamente sin dificultad todos los numeros primos, lo deje a medias porque me faltaban muchos primos en mi base de datos. Solo intervienen 4 valores donde sabiendo la secuencia que exponencialmente se incrementan y al parecer aleatoriamente se disponen, se determinan los numeros primos. No soy matematico y fue un dolor de cabeza tratar de comprenderlo ademas que me faltaban muchos numeros primos en ese entonces.

◘ Te felicito por tu codigo publicado y el tiempo corto en realizarlo para el metodo de Eratostenes, diria que el numero primo 87.647.246 seria y continuaria con los siguientes
1.774.128.751 1.774.128.767 1.774.128.773 1.774.128.803 1.774.128.841
Sin que lo tomes a mal, mis busquedas las hago en miles de millones, en este caso seria casi 2.000 millones como rango, algunos de los tiempos que fui controlando para buscar por rangos son:
1.000.000.000 ... 00:21:19
5.000.000.000 ... 01:46:35
10.000.000.000 ... 03:33:10
Son tiempos de busqueda inicial antes del limite de 1 billon, estos tiempos van disminuyendo y en lo que se tarda no es en encontrar numeros primos, como dije anteriormente en un rango de 50 millones saca los primos de los numeros base entre 10-12 segundos; tarda en el proceso de archivar los numeros primos, donde cada archivo tiene alrrededor de 36 millones de numeros primos registrados.
► No he encontrado una manera directa de archivarlos y reducir este tiempo, uso archivos aleatorios; los archivos binarios no me resultaron pues no todos tiene el mismo numero de digitos y los secuenciales, me serian complicados de leerlos pues como sabes tengo que activar algunos primos para depurar y no siempre estan al inicio; mas practico lo vi usar archivos aleatorios; pero haciendo pruebas igual tardan en archivar 36 millones de numeros primos.

☼ Bueno amigo... Gracias por los links que voy a revisarlos.... Creo que malentienden mi proposito de estar en el Foro, no busco jactarme, de ser asi lo haria por otras redes sociales... Particularmente tu persona me ha dado informacion que desconocia al respecto y cuando tenga datos contundentes te los hare conocer... no tengo todas las respuestas sobre los numeros primos, solo un metodo que genera posibles numeros primos y una secuencia que me permite depurar los no primos, con lo que el tiempo de busqueda es muy reducido.

Subi una presentacion de como busca en metodo, el tiempo, la cantidad de primos encontrados y otros detalles que ya les mencione, esta en youtube solo pon en la busqueda PRI-BASE..
Responder Con Cita
  #17  
Antiguo 11-10-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Victor Luis,

Cita:
Empezado por Victor Luis
...Gracias por los links que voy a revisarlos...


Revisa esta información:
Cita:
Hallado un número primo de más de 17 millones de cifras : http://www.madrimasd.org/blogs/matem...3/02/07/135694

Mayor número primo conocido : http://es.wikipedia.org/wiki/Mayor_n...primo_conocido
Espero sea útil

Nelson.
Responder Con Cita
  #18  
Antiguo 12-10-2013
Victor Luis Victor Luis is offline
Miembro
NULL
 
Registrado: oct 2013
Posts: 25
Poder: 0
Victor Luis Va por buen camino
Holas Nelson...

Pues si ya vi esos enlaces, donde usaron 25 ordenadores para lograr el numero primo de 17 millones de digitos, si me metiera a la competencia iria por los 100 millones de digitos. Como hay una variable que permita almacenar estas cantidades, hice unos cambios a mi programa en base al metodo, lo que me permitiria encontrar esa cantidad de digitos, claro en un determinado tiempo.

○ Por la informacion y las observaciones recibidas, he decidido desviarme un poco para tratar de encontrar dicha formula que permita obtener directamente los numeros primos y tambien, evaluar numeros grandes si son primos o no como lo hace en una pagina, busca en google con Factoris y uno de los primeros enlaces dira Factoris-Wims, esta en ingles, la cosa es que uno pone un numero e indica si es probable que sea primo o no lo es, creo usa el metodo de Muller-Rabin.. probando puse los primos encontrados y en todos indicaba que eran primos. Luego puse numeros grandes modificados por la secuencia del metodo y vi que solo te permite evaluar primos hasta 90 digitos, despues de esta cantidad solo muestra un mensaje...
Te encargaria por favor si sabes de otra pagina similar, me lo hagas saber, es interesante el metodo, aunque no es 100% segun lei, pero resulta facil verificar primos grandes. No pongo el link, ya que en el foro no me lo permiten.

◘ Respecto a tu codigo, indicaste que usaste el algoritmo de Eratostenes, hasta donde se al ordenar los numeros en columnas se medio seleccionan los numeros primos. Antes de conocer a este señor, yo obtenia mi base sumando +2 y +4 osea se forma un grupo de 2 que serian los primos gemelos

1º 2º
[5] [7] primos gemelos
* 7 resulta de sumar 5 + 2
* para ir al siguiente grupo sumas +6 al primero ó +4 al segundo del grupo anterior.
[11] resulta de sumar 5+6=11 o 7+4=11, luego sumas +2 y tiene el segundo numero del grupo
[11] [13]

○ Esto se repite constantemente y resulto ser los numeros de la criba de Eratostenes; pero comparado con mi metodo da muchos numeros base que no son primos, aproximadamente el 25% son multiplos de 5, igual cantidad son multiplos de 7, 11 y 13... No se si en tu codigo llegas a lo mismo; pero si te sirve ahi esta la referencia.
☼ Volviendo a aclararte que el metodo PRI-BASE no se basa en esto, creo que me entendieron mal o no me explique correctamente, pero dije que en mi segunda aplicacion o programa use este metodo que era parecido al de Eratostenes, buscando como reducir los numeros base con pocos no primos a depurar, encontre elmetodo que uso y analizo ahora, que tiene una logica diferente, es simple, que como le decia a una amigo, un niño de primaria podria hacerlo sin calculadora, no exagero; pero tomenlo como piensen, ya que hay quienes piensan que solo digo habladurias.

Bueno amigo espero encuentres una pagina como factoris y si sabes sobre el metodo de Muller-Rabin o sobre el test de Lucas-Lehmer me lo hagas saber aqui o a mi correo.. Gracias.
Responder Con Cita
  #19  
Antiguo 12-10-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Victor Luis Ver Mensaje
No pongo el link, ya que en el foro no me lo permiten.
Pon el link, algún moderador lo hará enlazable.
Responder Con Cita
  #20  
Antiguo 12-10-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Victor Luis,

Cita:
Empezado por Victor Luis
...si me metiera a la competencia iría por los 100 millones de dígitos...
Pregunto:

1- ¿De cuantos dígitos es el número primo más alto que has conseguido y como verificastes su primalidad?.

2- ¿Que sistema operativo usas en tus pruebas y de cuantos bits?.

3- ¿Que lenguaje utilizastes para implementar tu algoritmo?.

4- ¿Cuales son las características de hardware de la máquina que ejecuta tu algoritmo?.

5- ¿Por que no has entrado en la competencia?.

Cita:
Empezado por Victor Luis
...Factoris-Wims...solo te permite evaluar primos hasta 90 dígitos...espero encuentres una pagina como Factoris...
Pregunto: ¿Haz considerado instalar un programa que permita probar la primalidad de un número localmente?

Revisa este link sugerido por Factoris:
Cita:
PARI/GP home : http://pari.math.u-bordeaux.fr/
Cita:
Empezado por Victor Luis
...si sabes sobre el método de Miller–Rabin o sobre el test de Lucas-Lehmer me lo hagas saber...
Revisa estos links:
Cita:
Mersenne Primes - History, Theorems and Lists : http://primes.utm.edu/mersenne/

Test de primalidad : http://es.wikipedia.org/wiki/Test_de_primalidad

Miller–Rabin primality test : http://en.wikipedia.org/wiki/Miller%...primality_test

Test de Lucas-Lehmer : http://es.wikipedia.org/wiki/Test_de_Lucas-Lehmer

The Baillie-PSW primality test : http://www.trnicely.net/misc/bpsw.html

Test de primalidad AKS : http://artigos.tol.pro.br/portal/lin...imalidad%20AKS

Test de primalidad, el AKS : http://www.google.com/url?sa=t&rct=j...,d.eW0&cad=rja
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 12-10-2013 a las 23:01:57.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
11 millones de números primos ixMike La Taberna 15 06-10-2013 00:00:37
Suma de dígitos primos - Simplificar código Subliminalz Varios 3 12-06-2013 00:00:22
Ayuda con numeros primos Jcn Varios 4 28-05-2013 01:39:20
Como obtengo numeros primos ? llSnakell Varios 13 05-10-2011 03:56:09
Promedio.. digitos primos .. luisito2011 Varios 3 07-05-2011 02:54:02


La franja horaria es GMT +2. Ahora son las 08:42:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi