programando N reinas (backtracking)

Поділитися
Вставка
  • Опубліковано 28 жов 2024

КОМЕНТАРІ • 40

  • @alejandro.c3056
    @alejandro.c3056 Рік тому +2

    se podra hacer si quiero partir desde una soluicion propuesta inicial? es decir en el arbol no partir del punto 0 sino que en el nivel 4 y de ahi ramificar las posibles iteraciones

  • @ezraguz4171
    @ezraguz4171 2 роки тому +3

    en la linea
    if( (reinas[i]==reinas[k]) or (abs(k-i) == abs(reinas[k]-reinas[i]))){
    no es necesario abs(k-i) dado que k>i bastaria con k-i
    igual puedes poner el apuntador como variable global y te ahorrarías el envió en cada llamado a la función
    solo digo :)

  • @raulalejandrogutierrezmart5356
    @raulalejandrogutierrezmart5356 3 роки тому +1

    Amigo,sin duda genial, haces videos de excelente calidad y organizacion, te ganaste una humilde suscripcion y like, sigue asi

  • @ricardo_msr
    @ricardo_msr 3 роки тому

    Te entiendo más a ti que a mi profe jaja, excelente vídeo!!

  • @josecarlos-zc9hy
    @josecarlos-zc9hy Рік тому

    Hola! Se puede hacer lo mismo con el método: de Ramificación y poda?

  • @darwin8926
    @darwin8926 Рік тому

    Hay algo que no logro entender, agradecería mucho que alguien me lo aclare.
    Si k=n entraría en el if de la función para imprimir el arreglo que refleja una solución, lo que no me explico es, por que se sigue ejecutando la función si no hay un bucle que la haga repetirse, como lo es para el caso del "else" que si tiene un bucle "for" que hace que se busque continuamente hasta que k sea igual a n

  • @jonathanzapata4474
    @jonathanzapata4474 3 роки тому

    Explicas muy bien, sos grande

  • @calebayala3625
    @calebayala3625 2 роки тому

    Excelente amigo!!!!

  • @MarkcartneyR
    @MarkcartneyR 2 роки тому

    Hola, gracias por el video, vengo de un curso de c++ donde se vio el tema y al no entenderlo busque aqui en youtube y tu video me hizo comprenderlo mucho mejor, pero tengo una duda, en que parte del codigo o en que momento se realiza el backtracking? es decir, en que parte del codigo se regresa a una columna anterior al no poder colocar una reina?

    • @courezprogramacion8023
      @courezprogramacion8023  2 роки тому

      Se regresa cuando la función recursiva llega al caso base. Recuerda que una función recursiva siempre tiene un caso base y un caso que la hace entrar en recursividad. En el momento en que la función llega a un caso base significa que ya no es posible seguir buscando por ese camino y pasará a regresar hacia arriba en el árbol de búsqueda, descartando de esta forma movimientos que ya había tomado y regresando a una posición anterior. Si se descartan varias posiciones en algún momento se descartara todas las posiciones de una columna haciendo que regreses a la columna anterior. Espero haber respondido tu pregunta. Si no es así puedes volver a replantearme la pregunta para volver a responderte mejor😁👽💻😁

    • @MarkcartneyR
      @MarkcartneyR 2 роки тому

      ​@@courezprogramacion8023 Me sigue costando un poco la verdad jaja, se me complica la recursividad, voy a tratar de escribir un ejemplo para dar a entender mas mi duda:
      Suponiendo que en la primer llamada se coloca la reina[0], se coloca sin problemas en la primer fila ya que todo el tablero está solo, como la funcion comprobar regresa true al colocar la reina[0], se manda a llamar recursivamente a Nreinas, pero ahora con reinas[1], ahora, suponiendo (se que no pasaría esto en la segunda reina porque hay muchas posiciones libres) que la reina[1] no se pudo colocar en ninguna fila, al no llamar recursirvamente de nuevo a Nreinas por regresar falso en comprobar en sus N filas, se acaba la ejecucion recursiva de reinas[1] que llamó reinas[0], ahora que es lo que ocurre despues que hace que reinas[0] busque otra fila y vuelva a intentar llenar reinas[1]?
      Si vi los videos anteriores pero la verdad sigue confundiendome o mi logica no logra entender que es lo que pasa exactamente

  • @arisbethjoselyncarranzavaz9808
    @arisbethjoselyncarranzavaz9808 3 роки тому

    Se puede en netbeans

  • @codigocomentado7048
    @codigocomentado7048 3 роки тому

    Excelente, buen video 👍

  • @robin8753
    @robin8753 2 роки тому +1

    me debes una compuadora

  • @esaulurielmenesestorres4360
    @esaulurielmenesestorres4360 3 роки тому

    Tienes buen contenido, nuevo sub

  • @oscarroberto9137
    @oscarroberto9137 2 роки тому +4

    En python bro, gracias

    • @ChelOis-55
      @ChelOis-55 2 роки тому

      Me sumo a esa.

    • @oscarroberto9137
      @oscarroberto9137 2 роки тому +2

      Ya la hice en Python por si lo quieren

    • @ChelOis-55
      @ChelOis-55 2 роки тому +2

      @@oscarroberto9137 Qué bueno, si quieres, podrías compartirlo en Google Drive para todos los que estén interesados.

    • @fabioladrn3798
      @fabioladrn3798 2 роки тому

      ¿Por que trato de correr el programa con este código y me marca error en el valor absoluto?

  • @rolandojtorres
    @rolandojtorres 9 місяців тому

    programalo en tcl con gui. y seguro necesitaras menos lineas que con python.

  • @richardmartinez2524
    @richardmartinez2524 3 роки тому

    Excelente video. Tengo una solución al problema de las mil reinas pero en Excel.

    • @courezprogramacion8023
      @courezprogramacion8023  3 роки тому +1

      Es un placer ayudar. Puedes compartirnos el excel mediante drive😁

    • @richardmartinez2524
      @richardmartinez2524 3 роки тому

      @@courezprogramacion8023 Recibió el archivo?

    • @courezprogramacion8023
      @courezprogramacion8023  3 роки тому

      @@richardmartinez2524 No me llego el archivo. Pero seria buenisimo si pudieras compartir el link del documento aca de forma publica, como comentario para que todos podamos verlo :)

  • @pxang98
    @pxang98 3 роки тому

    Pensaba que el truco era si n era 0, 1 o 2 el algoritmo no funcionaba xD

    • @courezprogramacion8023
      @courezprogramacion8023  3 роки тому

      Jajaja. Esque este problema está relacionado con el problema ¿P=NP?. El cual es un problema que aún no ha sido resuelto hasta ahora. Puedes buscar más información al respecto en internet, es un tema bastante interesante :)

    • @pxang98
      @pxang98 3 роки тому

      Ok gracias por la info

  • @pablorafael1680
    @pablorafael1680 2 роки тому

    ANEXO : 100 PROBLEMAS RESUELTOS DE 12 REINAS
    ESTA EN COORDENADAS CARTESIANAS
    EL PRIMER VALOR ES EL NUMERAL VA DE 1 A CIEN
    EL SEGUNDO ES EL CODIGO DE LOS 14200 RESULTADOS
    EL RESTO : EL PAR (X,Y)
    X=1, Y=7
    X=2, Y=2
    X=3, Y=6
    X=4,Y=8
    X=5, Y=12
    X=6, Y=1
    X=7, Y=4
    X=8, Y=10
    X=9, Y=5
    X=10, Y=11
    X=11, Y=9
    X=12, Y=3
    Y ASI SUCESIVAMENTE LOS CIEN CASOS DE 12 POR 12
    1 142 7 2 6 8 12 1 4 10 5 11 9 3
    2 284 7 3 1 9 5 10 2 11 8 12 4 6
    3 426 7 3 11 6 8 1 4 12 9 2 5 10
    4 568 7 4 6 12 10 5 11 9 1 3 8 2
    5 710 7 4 12 3 8 11 2 6 1 10 5 9
    6 852 7 5 8 11 1 3 9 12 4 2 10 6
    7 994 7 9 2 5 10 1 11 6 3 12 8 4
    8 1136 7 9 12 6 2 10 5 1 4 11 3 8
    9 1278 7 10 6 3 1 4 11 8 2 5 12 9
    10 1420 7 11 3 12 4 8 5 2 10 1 6 9
    11 1562 7 12 3 8 2 11 6 1 10 5 9 4
    12 1704 5 1 9 4 10 8 2 11 7 3 12 6
    13 1846 5 2 9 7 12 1 8 6 11 3 10 4
    14 1988 5 3 9 11 8 1 12 6 2 10 7 4
    15 2130 5 7 9 1 12 4 8 3 11 6 10 2
    16 2272 5 7 12 6 11 1 10 4 2 8 3 9
    17 2414 5 8 6 12 2 11 7 10 4 9 1 3
    18 2556 5 9 1 6 11 3 8 4 12 10 2 7
    19 2698 5 9 6 10 3 1 12 2 8 11 7 4
    20 2840 5 10 2 9 11 4 8 1 12 7 3 6
    21 2982 5 10 8 11 2 7 3 1 9 12 6 4
    22 3124 5 11 9 6 3 1 10 7 2 4 12 8
    23 3266 5 12 10 7 2 4 1 8 11 9 6 3
    24 3408 8 1 12 7 11 2 5 9 4 10 3 6
    25 3550 8 3 1 10 7 5 12 2 4 6 11 9
    26 3692 8 3 11 2 10 6 1 12 4 9 7 5
    27 3834 8 4 7 1 11 2 6 9 12 5 3 10
    28 3976 8 4 12 1 11 7 10 3 5 2 9 6
    29 4118 8 5 3 12 9 2 6 10 1 11 4 7
    30 4260 8 6 1 3 11 9 4 2 5 10 12 7
    31 4402 8 6 4 10 1 5 9 2 12 7 11 3
    32 4544 8 10 3 7 11 1 6 2 5 12 4 9
    33 4686 8 11 4 1 9 5 12 10 7 2 6 3
    34 4828 8 12 4 6 11 2 10 5 3 1 9 7
    35 4970 4 2 9 5 10 8 1 12 7 3 6 11
    36 5112 4 6 9 12 5 11 2 7 10 8 3 1
    37 5254 4 7 5 10 12 1 6 2 9 11 8 3
    38 5396 4 7 12 2 9 6 3 10 8 11 5 1
    39 5538 4 8 10 5 3 1 9 12 6 2 7 11
    40 5680 4 9 3 8 11 1 6 2 5 7 12 10
    41 5822 4 9 12 3 7 2 11 6 1 10 8 5
    42 5964 4 10 8 3 5 7 11 1 6 12 9 2
    43 6106 4 11 8 3 7 12 2 6 1 10 5 9
    44 6248 4 12 9 11 3 1 6 10 2 7 5 8
    45 6390 9 2 4 10 7 11 6 1 12 8 5 3
    46 6532 9 3 5 2 10 12 7 1 4 6 8 11
    47 6674 9 3 12 7 11 2 5 1 4 10 8 6
    48 6816 9 4 8 5 12 10 1 11 6 3 7 2
    49 6958 9 5 2 10 7 3 8 12 4 1 11 6
    50 7100 9 5 12 10 3 7 4 1 8 2 11 6
    51 7242 9 6 4 7 10 12 2 8 5 3 1 11
    52 7384 9 7 3 8 12 2 4 6 11 5 10 1
    53 7526 9 11 2 8 12 3 1 6 10 5 7 4
    54 7668 3 5 7 9 4 12 1 6 10 2 11 8
    55 7810 3 6 4 9 5 12 10 1 7 2 8 11
    56 7952 3 6 12 9 2 5 10 4 1 8 11 7
    57 8094 3 7 12 10 2 4 6 11 9 1 5 8
    58 8236 3 8 11 1 6 10 12 7 4 2 9 5
    59 8378 3 9 6 12 5 11 1 7 4 2 8 10
    60 8520 3 10 7 1 4 9 12 8 5 11 2 6
    61 8662 3 11 7 1 6 12 2 8 5 9 4 10
    62 8804 10 1 5 2 8 12 3 9 6 4 11 7
    63 8946 10 2 9 3 12 7 1 6 11 5 8 4
    64 9088 10 3 9 2 4 1 7 11 6 12 5 8
    65 9230 10 4 9 5 3 11 7 2 12 6 8 1
    66 9372 10 5 3 11 4 12 9 6 1 7 2 8
    67 9514 10 6 2 11 8 3 7 4 1 12 9 5
    68 9656 10 7 2 11 3 12 9 5 1 4 6 8
    69 9798 10 8 2 5 12 1 7 11 3 6 4 9
    70 9940 10 12 5 8 1 3 6 2 9 11 4 7
    71 10082 2 5 9 12 10 8 3 1 4 7 11 6
    72 10224 2 7 1 6 12 9 11 3 5 10 8 4
    73 10366 2 8 1 7 12 10 6 4 11 5 3 9
    74 10508 2 9 6 8 3 1 12 10 5 7 11 4
    75 10650 2 10 8 6 1 3 11 7 12 4 9 5
    76 10792 11 1 8 5 12 2 7 10 6 3 9 4
    77 10934 11 3 10 2 4 9 7 12 1 6 8 5
    78 11076 11 5 3 9 4 10 1 6 2 7 12 8
    79 11218 11 6 4 2 12 9 7 10 1 3 5 8
    80 11360 11 7 5 2 8 12 3 9 6 1 10 4
    81 11502 11 9 4 1 5 8 2 12 7 3 10 6
    82 11644 1 5 8 11 9 3 6 2 10 12 7 4
    83 11786 1 7 5 12 9 4 10 3 6 11 2 8
    84 11928 1 9 6 8 2 12 3 7 4 11 5 10
    85 12070 12 1 7 4 10 8 2 11 3 6 9 5
    86 12212 12 4 9 3 5 2 10 1 7 11 8 6
    87 12354 12 6 9 7 2 8 3 1 10 5 11 4
    88 12496 12 8 11 5 3 1 9 4 2 7 10 6
    89 12638 6 1 10 5 9 12 3 8 11 2 4 7
    90 12780 6 2 10 1 9 4 8 11 3 12 7 5
    91 12922 6 3 7 10 12 9 2 4 11 8 5 1
    92 13064 6 4 1 7 9 12 3 8 10 5 2 11
    93 13206 6 4 11 8 3 12 2 7 1 10 5 9
    94 13348 6 8 5 2 12 9 4 1 3 10 7 11
    95 13490 6 9 1 10 5 2 11 7 3 12 8 4
    96 13632 6 9 5 12 8 4 11 1 3 7 10 2
    97 13774 6 10 2 7 5 12 9 1 4 11 3 8
    98 13916 6 10 12 4 1 8 11 3 7 9 2 5
    99 14058 6 11 7 5 1 9 4 8 3 12 10 2
    100 14200 6 12 10 8 5 3 1 7 2 11 9 4