suscribete a nuestro RSS

De sudokus

Hoy voy a explicar como hacer un programa en C++ que resuelva sudokus.
I para ello utilizaremos matrices y recursividad.

Hoy voy a explicar como hacer un programa en C++ que resuelva sudokus.
Para ello utilizaremos matrices y recursividad.

Vamos a empezar con las cabeceras y el main():


#include <iostream>
#include <vector>
using namespace std;

typedef vector<int> Fila;
typedef vector<Fila> Matriz;

int main() {
    int n;
    cin >> n;
    int z = 0;
    int N = n*n;
    Matriz M(N, Fila(N));
    for (int i = 0; i < N; ++i) {
        for (int j = 0; j < N; ++j) {
	    	cin >> M[i][j];
	    	if (M[i][j] == 0) ++z;
	}
    }
    if (soluciona(M, n, z)) pinta(M, n);
    else cout << "No tiene solucion" << endl;
}

Lo primero que vemos es que una Matriz es un vector de vectores. Lo siguiente a comentar es que el programa primero espera que le entremos el tamaño del sudoku (los mas normales son de 3X3, por lo tanto entraríamos un 3).
Después de crear una Matriz de N*N el programa empieza a poner los números que le des (0 si la casilla está vacía) de izquierda a derecha y de arriba a abajo.
QUIERO SABER +

La recursividad

La recursividad es una tecnica de programación que si se utiliza bien puede llegar a simplificar mucho las cosas.

La recursividad es una técnica de programación que si se utiliza bien puede llegar a simplificar mucho las cosas, pero si se utiliza mal puede hacer cosas muy malas xD.

Consiste en hacer que una función se llame a ella misma para resolver un problema. Como no se muy bien como explicarlo con palabras os voy a enseñar un ejemplo.
Primero veremos una función normal que calcule el factorial de un número.
El factorial de n es el producto de todos los numero entre 1 y n:
4! = 4*3*2*1
o de forma general:
n! = n*(n-1)*(n-2)*···*1

Por lo tanto nuestra función ara n iteraciones e irá multiplicando el factor por i:
QUIERO SABER +

Más libres, más creativos - IDB #2

Cuanto mayor sea la cota de libertad y progreso de una sociedad, mayor será la creatividad que sus miembros desplegarán.

Ideas de Bes #2 - Más libres, más creativos

Ideas de Bes és una serie de artículos escritos por Fernando Trias de Bes, escritor y experto en marketing, que mensualmente publica un ensayo sobre creatividad en El PAÍS Semanal, ya llevo 1 año leyéndome todos estos artículos y los encuentro, todos y cada uno de ellos, obras maestras. Iré subiendo los nuevos y espero poder encontrar los viejos.

Bueno, Bonito y…  Sencill - IDB #1 | Más libres, más creativos - IDB #2

Ortorexia

La obsesión por la salud, una enfermedad

El otro día leía un interesantísimo artículo en Así de simple, así de natural, titulado Vida saludable y “superalimentos” donde Quim criticaba la obsesiva medicalización de la alimentación. Pues bien, unos días después y por casualidad, descubro que  esa obsesión que en mi opinión afecta a la sociedad en general, hay personas que la padecen de forma aguda y más obsesiva, provoncadoles un verdadero trastorno alimentario: la ortorexia. La ortorexia u ortorexia nervosa (del latín, comer recto) fue descrita por Steven Bratman (foto)steven-bratman en un artículo que publicó en 1997, donde él mismo aceptaba haberla sufrido. En ese artículo, Bratman dice que ésta aparece en personas que inicialmente sólo quieren mejorar la calidad de los alimentos que ingieren, pero que poco a poco se van volviendo más estrictos y más restrictivos. A su vez, el tiempo que deben dedicar a la comida aumenta y la vida en general gira alrededor de conseguir esa alimentación tan sana y evitar cualquier tipo de comida normal. Así pues, del mismo modo que la anorexia o la bulímia exageran la importancia de la comida y se emparanoian con la cantidad de alimento, la ortorexia se focaliza en su calidad. Del mismo modo que la anorexia persigue un ideal estético, la ortorexia busca un cuerpo idealmente sano, ambas obsesivamente. Pueden confundirse anorexia i ortorexia debido a que ambos pacientes rechazan comida. Pero en el caso de la ortorexia el paciente no quiere estar delgado, no se ve gordo, simplemente quiere estar puro.

QUIERO SABER +

Tags:
Maravillas del Espacio

La imagen de la semana - Maravillas del Espacio

Grácias a The Big Picture - Más de esta serie

Como Hackearse a uno mismo

Esta es la historia de un tipo que queriendo demostrar lo gran hacker que era, se borró su disco duro.

Bien, ésta es la historia de un tipo que queriendo demostrar lo gran hacker que era, se borró su disco duro. Me lo ha pasado un compañero de clase, i aún me estoy riendo:


Historia de un Hacker que ataco su propia IP

Lo que no entiendo es como alguien que ni siquiera sabe que 127.0.0.1 es la IP interna del PC ha podido conseguir un software que formatea el HD de la IP dada. Una posible explicación sería que ese software en verdad se lo han colado y lo único que hace es borrar su propio disco duro, eso haría que la historia fuera aún mejor :)

Tags:

Bueno, Bonito y… Sencillo - IDB #1

Observar la realidad con la mirada del novato es primordial. Como los niños, debemos preguntarnos por qué en todo.

Ideas de Bes #1 - Bueno, Bonito y... Sencillo

Ideas de Bes será una serie de artículos escritos por Fernando Trias de Bes, escritor y experto en marketing, que mensualmente publica un ensayo sobre creatividad en El PAÍS Semanal, ya llevo 1 año leyéndome todos estos artículos y los encuentro, todos y cada uno de ellos, obras maestras. Iré subiendo los nuevos y espero poder encontrar los viejos.
Bien, aquí va el primero:

QUIERO SABER +

Los libros deben seguir a las ciencias y no las ciencias a los libros.

Francis Bacon