programando N reinas (backtracking)

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ธ.ค. 2024

ความคิดเห็น • 40

  • @raulalejandrogutierrezmart5356
    @raulalejandrogutierrezmart5356 3 ปีที่แล้ว +1

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

  • @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

  • @ricardo_msr
    @ricardo_msr 3 ปีที่แล้ว

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

  • @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 :)

  • @jonathanzapata4474
    @jonathanzapata4474 3 ปีที่แล้ว

    Explicas muy bien, sos grande

  • @josecarlos-zc9hy
    @josecarlos-zc9hy ปีที่แล้ว

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

  • @calebayala3625
    @calebayala3625 2 ปีที่แล้ว

    Excelente amigo!!!!

  • @codigocomentado7048
    @codigocomentado7048 3 ปีที่แล้ว

    Excelente, buen video 👍

  • @darwin8926
    @darwin8926 2 ปีที่แล้ว

    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

  • @MarkcartneyR
    @MarkcartneyR 3 ปีที่แล้ว

    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  3 ปีที่แล้ว +1

      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 3 ปีที่แล้ว

      ​@@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

  • @esaulurielmenesestorres4360
    @esaulurielmenesestorres4360 3 ปีที่แล้ว

    Tienes buen contenido, nuevo sub

  • @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 :)

  • @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?

  • @robin8753
    @robin8753 2 ปีที่แล้ว +1

    me debes una compuadora

  • @rolandojtorres
    @rolandojtorres 11 หลายเดือนก่อน

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

  • @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