/*aqui ta algo en java pero un consejo -- recuerda que cuando termines la carrera tendras competencia, y aquiellos que te ayudaron asi son tus peores enemigos*/
package aleatoreos;
public class congruencialMultilpicativo
{
public static String[][] generar(int semilla,int constanteMultiplicativa,int modulo)
{
IteracionCMul iteracionInicial=null,iteracionFinal=null;
int cantidadDeAleatoreos=0,semillaInicial;
semillaInicial=semilla;
IteracionCMul iteracion=null;
do{
if(iteracionInicial==null)
{
iteracion=new IteracionCMul(semillaInicial, constanteMultiplicativa, modulo);
iteracionInicial=iteracion;
}else{
iteracion=new IteracionCMul(iteracionFinal.nuevaSemilla,constanteMultiplicativa,modulo);
iteracionFinal.siguiente=iteracion;
}
iteracionFinal=iteracion;
cantidadDeAleatoreos=cantidadDeAleatoreos+1;
}while(!seCiclo(iteracionInicial, iteracionFinal));
String[][] numerosAleatoreos=new String[cantidadDeAleatoreos][6];
IteracionCMul iteracion2=iteracionInicial;
for(int contador=0;contador<cantidadDeAleatoreos;contador++)
{
numerosAleatoreos[contador][0]=""+iteracion2.semilla;
numerosAleatoreos[contador][1]=""+iteracion2.constanteMultiplicativa;
numerosAleatoreos[contador][2]=""+iteracion2.modulo;
numerosAleatoreos[contador][3]=""+iteracion2.nuevaSemilla;
numerosAleatoreos[contador][4]=""+iteracion2.numAleatoreoIndicado;
numerosAleatoreos[contador][5]=""+iteracion2.numAleatoreo;
iteracion2=iteracion2.siguiente;
}
return numerosAleatoreos;
}
private static boolean seCiclo(IteracionCMul iteracionInicial,IteracionCMul iteracionFinal){
IteracionCMul iteracion=iteracionInicial;
boolean flag=false;
while(iteracion.siguiente!=null && flag==false){
if(iteracion.semilla==iteracionFinal.nuevaSemilla)flag=true;
iteracion=iteracion.siguiente;
}
return flag;
}
}
class IteracionCMul
{
public IteracionCMul siguiente;
String numAleatoreo,numAleatoreoIndicado;
public int semilla,nuevaSemilla,constanteMultiplicativa,modulo;
public IteracionCMul(int semilla,int constanteMultiplicativa,int modulo){
this.semilla=semilla;
this.constanteMultiplicativa=constanteMultiplicativa;
this.modulo=modulo;
nuevaSemilla=(constanteMultiplicativa*semilla)%modulo;
double a=nuevaSemilla,b=(modulo-1);
this.numAleatoreo=""+(a/b);
this.numAleatoreoIndicado=""+(nuevaSemilla+"/"+(modulo-1));
}
}
// algo mas, creo que te lo paso de un prototipo que habia hecho, es una clase en java, solo llamala y usala
///creo que ya no tenia errores solo has un main