Resolución de algoritmos [Reto semanal] #1

GuaNaGe

¿os imagináis que renueva #1? Sería tan fan de este hilo... :innocent:

Yerkos

Debería actualizar #1 o alguien plantear otros 3 algoritmos por aqui.

HeXaN

Se podrían proponer los tres primeros de aquí: https://adventofcode.com/

3 1 respuesta
Kanario93

#93 Pues no conocía esa pagina, me parece bien la idea.

GuaNaGe

report #1 todos por no actualizar... xDDD <3

L

Hola.

Pues he visto el hilo y aprovechando que estoy aprendiendo Java y que me tocaba practicar un poco con los arrays he sacado un programilla para calcular el primer Fibonacci con mil digitos

visto así es difícil saber si el resultado es correcto asi qué he hecho un pequeño listado para comprobar que funciona correctamente.

y por supuesto el código, no preguntéis cuanto tarde en hacerlo...

spoiler
1
stuckED

Saqué esto para el modo fácil de #1, pero nunca llega a hacerme el print. Haciendo debug si veo como crece el número correctamente.

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	int resultado = 0;
	int next= 1, prev= 0;;
	boolean out = false;
	String fibonacci = "";
	
	for (int i = 0; i> 0 || out != true; i++)
	{
		resultado = prev + next;
		prev = next;
		next = resultado;
		
		fibonacci = String.valueOf(resultado);
		
		if ( fibonacci.length() == 1000)
		{
			out = true;
		}
	}
	System.out.println(fibonacci);
}
1 respuesta
Tony_Toscana

#97 los int de java no tienen capacidad suficiente para albergar cifras tan grandes como las que requiere el programa, mira como las cifras van bailando entre números positivos y negativos, porque se desborda. Busca BigInteger.

1 2 respuestas
stuckED

#98 Muchas gracias!

L

#98 De haberme enterado antes me habría ahorado un monton de trabajo xD, aunque ha sido un ejercicio divertido...

15 días después
L

Hola.
Me he estado peleando con las ternas pitagóricas y despues de varias versiones diferentes del algoritmo sin que me saliera la solución que habéis puesto pues he llegado a conclusion de que esa solución no es la correcta ni por asomo, solo los múltiplos de las dos primeras ternas primarias ya suman 175k así que por narices tiene que estar mal.

He partido del enlace que ha puesto un compañero en la página anterior, y despues de entender como se desarrolla el árbol y como a partir de esas matrices se sacan todas las ternas pitagóricas es fácil resolver, con una función recursiva para las ternas primarias y otra para los múltiplos de ternas primarias.

He empezado con la versión burra, como casi todos, y aunque solo vale para valores relativente pequeños me ha valido para hacer comprobaciones. He descartado pares en B si A es impar o viceversa, pares en C, y también descarto los números que no son coprimos entre sí y ni con esas, así es imposible...

spoiler

Y luego ya el arbolito de ternas, que lo he repetido varias veces porque no me daba el mismo resultado que hay al princio y que creia bueno, y en todas las versiones que he hecho siempre me ha dado lo mismo, así que imagino que está bien.

A mi me salen 1256149 ternas.

spoiler
1 respuesta
S

#101
El problema te pide cuantos valores para L pueden formar EXACTAMENTE 1 triangulo rectángulo. Yo en tu solución veo muchos triángulos repetidos, estas sumando de mas.
La solución para L = 15 es 16 no 29.

1 respuesta
L

#102
Pues no te entiendo, no hay ningun triángulo repetido, mi inglés es muy justito, quizás no he entendido bien el enunciado...

1 respuesta
S

#103
Como que no, ahi aparece 120 3 veces. El problema te pregunta por las medidas que solo pueden formar 1 triangulo rectángulo, si se puede formar mas de uno no hay que sumarlo.

solo los múltiplos de las dos primeras ternas primarias ya suman 175k así que por narices tiene que estar ma

En esa lista la mayoría forman mas de un triangulo y no hay que sumarlos.

B

Se van a proponer más ? O esto ya ha muerto

1 respuesta
L

#105
Vale, vale, creo ahora lo entiendo ¿tendría que hacer una matriz de 1 millón y medio de elementos e ir sumando y luego comprobar? algo así ¿no?:-|

L

Efectivamente, son 161667 longitudes con una única solución, no estaba mal planteado mi código, pero no entendí el enunciado. Apenas tuve que modificar nada, además de un contador de ternas solo tengo que poner un contador para cada longitud y no sumar si ya se ha sumado esa longitud o restar ese valor al final si es mayor que 1, he preferido hacerlo así para cambiar menos cosas.

spoiler

Problema resuelto, a ver si me sale el de los palíndromos.

Saludos.

L

Mi código para la suma de palíndromos, debería estar bien porque para números menores que mil me sale el resultado del enunciado 11 palíndromos que suman 1464, pero no me sale el mismo resultado que el otro compañero para números menores que 108...

A mi me sale esto.

Para números <= que 100000000
Número de palíndromos=168
Suma total=2916867073

spoiler
spoiler
spoiler
D

este también puede ser uno de tus retos: Buenas tardes, realice una aplicación en vb.net tipo un banner que ocupa todo el ancho superior del monitor y unos 3 centímetros de alto, mi consulta es saber si es posible que las demás aplicaciones o web que se puedan abrir en la pc solo ocupen el espacio vació que no ocupa el banner para que este banner siempre pueda estar visible ya que es informativo.

saludos.

1 respuesta
Camp1

#109 tu respuesta está aqui