Foro Oficial de Algoritmia

Ayuda

SALU2
NECESITO ALGUIEN QUE ME AYUDE O QUE ALGUIEN ME PUEDA CONTACTAR PARA HACER UN PROYECTO EN C++ ES SOBRE UNA MATRIZ ESPIRAL TRABAJO DE MI UNIVERSIDAD, NO IMPORTA EL COSTO SI ALGUIEN SABE POR FAVOR pablorodiguez_n@yahoo.com
3125877849

gracias**** urgente por favor***
 
Voy a ver si esta tarde les traigo uno sacado de un libro de algoritmia ;) Esos problemas son siempre interesantes.
 
Me parece perfecto, pero la cosa seria como no dejar dormir esto (como esta ahora) es decir que siempre se este haciendo algo. En mi opinion la idea es que problema solucionado problema muerto. Pero no se que opinen los demas.
 
huracancorp dijo:
Me parece perfecto, pero la cosa seria como no dejar dormir esto (como esta ahora) es decir que siempre se este haciendo algo. En mi opinion la idea es que problema solucionado problema muerto. Pero no se que opinen los demas.

Yo opino que tendria mas sentido si despues de dar solucion a un problema, buscamos una solucion optima para el mismo, ahi es donde realmente se veria la Algoritmia, de lo contrario seria solo un consurso de programacion.

.
 
Qué más... Hace rato que no veía actividad en este tema...Que bueno!!!:D


PHP:
# Programa que rota las posicones un arreglo circular un numero determinado de veces
# Código en ruby por Uno 2006-11-15
puts "Escriba los elementos del arreglo separados por una coma: "
a = gets.chop!.split(",") 
puts "Numero de posiciones a rotar: "
i = gets.chop!.to_i 
if i >= 0
  i.times{ b = a.pop; a.insert( 0, b ) }
else
  i.abs.times{ b = a.shift;  a.push( b ) }
end
puts a.join(", ") 
sleep( 8 ) # Esperar 8 segundos...
En ruby sale corto... jeje ojalá sigan posteando más ejercicios
 
parece que se ha perdido la escencia del foro, en donde esta el nuevo reto? no veo ningun reto propuesto. Sera que propongo uno yo?
 
nuevo reto

ok:p aqui les tengo un reto superbueno, doy dos días para que den con la solución.

Enunciado:

Un Robot puede dar pasos de 1,2 o 3 metros. Haga un algoritmo que calcule el numero de maneras que el robot puede caminar m metros.

Ejemplo:

m=4
resultado=7

Porque? las maneras en que el robot puede caminar los 4 metros son las siguientes:

1,1,1,1
1,1,2
1,2,1
2,1,1
1,3
3,1
2,2

PD: El programa solo debe mostrar el numero de maneras, no debe mostrar cuales son esas maneras.

este esta super bueno :bandido:.

Haganle!!!
 
Clase Nodo

PHP:
public class Nodo {

	int valor;

	int suma;

	Nodo hijo1;

	Nodo hijo2;

	Nodo hijo3;

	public Nodo(int valor) {
		this.valor = valor;
		suma = valor;
	}

	public Nodo(int valor, int sumaa) {
		this.valor = valor;
		suma = valor + sumaa;
	}

}

Clase Arbol

PHP:
public class Arbol {

	Nodo raiz;

	int movi = 0;

	public void crearArbol(int pasos) {

		raiz = new Nodo(0);

		nodo(raiz, pasos);

	}

	// metodo recursivo que crea el arbol recursivo
	public void nodo(Nodo nodo, int pasos) {

		if (1 + nodo.suma <= pasos) {
			nodo.hijo1 = new Nodo(1, nodo.suma);
			nodo(nodo.hijo1, pasos);

		} else {

			return;
		}

		if (2 + nodo.suma <= pasos) {
			nodo.hijo2 = new Nodo(2, nodo.suma);
			nodo(nodo.hijo2, pasos);

		} else {

			return;
		}

		if (3 + nodo.suma <= pasos) {
			nodo.hijo3 = new Nodo(3, nodo.suma);
			nodo(nodo.hijo3, pasos);

		} else {

			return;
		}

	}

	//lo recore pa contar
	public void recorer(Nodo nodo) {

		if (nodo == null) {

			return;
		} else {
			if (nodo.hijo1 ==null && nodo.hijo2 ==null&& nodo.hijo3 == null) {
				movi++;
				return;
			}
			recorer(nodo.hijo1);
			recorer(nodo.hijo2);
			recorer(nodo.hijo3);
		}

	}

Ejecutable
PHP:
public static void main(String[] args) {

		Arbol nuevo = new Arbol();

		nuevo.crearArbol(10);

		nuevo.recorer(nuevo.raiz);

		System.out.println("Pasos " + nuevo.movi);

	}


La verdad, me encanto el reto, y aunque se veia un poco dificil, me salio en media hora y es enserio, esta super machetiado con cosas feas pero el caso era hacerlo rapido y que funcione lo hice aputna de arbol como se daran cuenta y pues aparte de calcular el numero perfectamente muestra las rutas, asi que bien huracancorp bkano pero mijo no nos subestime que nivel de programacion es lo que hay, ojala y tenga tiempo pa optimizarlo.


de nuevo gracias que ricura de foro!
 
  • Me gusta
Reacciones: 2 personas
ok, personalmente me parece muy ineficiente tu solución, pero lo felicito porque la idea es hallar una solución, no la mejor!!!

puedo postear mi solucion?
 
  • Me gusta
Reacciones: 2 personas
huracancorp dijo:
ok, personalmente me parece muy ineficiente tu solución, pero lo felicito porque la idea es hallar una solución, no la mejor!!!

puedo postear mi solucion?

Buenos Días...

Klaro Kompañero, postule su solución, la idea es optimizar y para eso hay ke hallar varias rutas...
 
  • Me gusta
Reacciones: 2 personas
Mi solucion al problema del robot

Código:
#include <iostream.h>
#include <math.h>

 int pasos(int n) 
{ if(n>3) return pasos(n-1)+pasos(n-2)+pasos(n-3);   
   else return pow(2,n-1); 
}  

main() 
{ cout<<pasos(10); 
  getchar(); 
}
Esta es mi solución realizada en c++, pueden comparar las respuestas con la otra solución, realmente ambas funcionan.
 
huracancorp dijo:
ok, personalmente me parece muy ineficiente tu solución, pero lo felicito porque la idea es hallar una solución, no la mejor!!!

puedo postear mi solucion?

Por que te parece muy ineficiente la solucion de fram7 ? :confused:

La de fram7 muestra las posibles formas en que el robot podria caminar; la tuya no.

Seria bueno que dieras otra solucion mas eficiente que la de fram7, y que muestre las formas en que el robot pueda caminar.

PD: Ese ejercicio esta muy interesante y merece varias soluciones :)

.
 
  • Me gusta
Reacciones: 2 personas
roger padilla dijo:
Por que te parece muy ineficiente la solucion de fram7 ? :confused:

La de fram7 muestra las posibles formas en que el robot podria caminar; la tuya no.

Seria bueno que dieras otra solucion mas eficiente que la de fram7, y que muestre las formas en que el robot pueda caminar.

PD: Ese ejercicio esta muy interesante y merece varias soluciones :)

.

Si te das cuenta en el enunciado coloque que no fuera necesario mostrar las posibilidades, esto con el fin de que no fuera necesario generar estas posibildiades e ir contandolas sino con una formula estrictamente matematica se diera la solución. hermano las matematicas lo dicen todo, la forma de fram7 muestra las posibilidades porque el las necesita para mostrar el resultado, pero el fin no era mostrar las posibilidades sino dar el resultado. Es mas la formas de caminar es un problema de estadistica, felicitaciones a farm7 por el algoritmo pero la idea y en el enunciado lo decia era mostrar solo las soluciones
huracancorp dijo:
Un Robot puede dar pasos de 1,2 o 3 metros. Haga un algoritmo que calcule el numero de maneras que el robot puede caminar m metros.

Ejemplo:
m=4
resultado=7

Porque? las maneras en que el robot puede caminar los 4 metros son las siguientes:

1,1,1,1
1,1,2
1,2,1
2,1,1
1,3
3,1
2,2

PD: El programa solo debe mostrar el numero de maneras, no debe mostrar cuales son esas maneras.
.

Es mas roger padilla, hable contigo por messenger sobre este tema de mostrar las soluciones.
 
  • Me gusta
Reacciones: 2 personas
Creatividad y Originalidad es lo que hay en la solucion de fram7.

Yo quiero ver otras soluciones que muestren las posibles formas de caminar del robot, ojala y no recursivas.
.
 

Los últimos temas