Darío logró demostrar que la ecuación
y2 = x3 + 9
tiene diez soluciones enteras (o sea que x e y son números enteros). Encontrarlas a todas.
Esto es el producto cartesiano de los números enteros de -3 a 3.
muestra serie [-3 1 7]
[-3 -2 -1 0 1 2 3]
muestra multiconj duplica serie [-3 1 7]
[[-3 -3] [-3 -2] [-3 -1] [-3 0] [-3 1] [-3 2] [-3 3]
[-2 -3] [-2 -2] [-2 -1] [-2 0] [-2 1] [-2 2] [-2 3]
[-1 -3] [-1 -2] [-1 -1] [-1 0] [-1 1] [-1 2] [-1 3]
[0 -3] [0 -2] [0 -1] [0 0] [0 1] [0 2] [0 3]
[1 -3] [1 -2] [1 -1] [1 0] [1 1] [1 2] [1 3]
[2 -3] [2 -2] [2 -1] [2 0] [2 1] [2 2] [2 3]
[3 -3] [3 -2] [3 -1] [3 0] [3 1] [3 2] [3 3]]
Podemos ver si la ecuación se cumple para algunos pares de los anteriores. Para el primer par siguiente no se cumple, para el segundo sí se cumple.
muestra aplica [[x y] esigual lista (:y * :y) (:x * :x * :x + 9)] [-3 -3]
0
muestra aplica [[x y] esigual lista (:y * :y) (:x * :x * :x + 9)] [-2 -1]
1
Podemos aplicar el anterior criterio para escoger pares. Ahora lo hacemos en un dominio más amplio, en el cuadrado que va desde (-40,-40) a (40,40). Encontramos 8 de las 10 soluciones.
muestra escoge [aplica [[x y] esigual lista (:y * :y) (:x * :x * :x + 9)]] ~
multiconj duplica serie [-40 1 81]
[[-2 -1] [-2 1] [0 -3] [0 3] [3 -6] [3 6] [6 -15] [6 15]]
Las otras dos soluciones nos eluden por el momento. Queremos saber, para qué otros valores de x e y se cumple la ecuación. Esto equivale a buscar valores de y enteros producidos mediante:
y = RaízCuadrada(x3 + 9)
muestra recorrido [[x] raizcuadrada :x * :x * :x + 9] serie [0 1 5]
[[0 1 2 3 4] [3 3.16227766016838 4.12310562561766 6 8.54400374531753]]
muestra trans recorrido [[x] raizcuadrada :x * :x * :x + 9] serie [0 1 5]
[[0 3] [1 3.16227766016838] [2 4.12310562561766] [3 6] [4 8.54400374531753]]
Vemos que para x = 0, y= 3 y que para x = 3, y = 6. En lo siguiente escogemos todos los valores en los que y es entera.
muestra escoge [esentero ultimo] trans recorrido [[x] rc :x * :x * :x + 9] serie [0 1 5]
[[0 3] [3 6]]
Vayamos un poco más lejos (hasta x = 500)
muestra escoge [esentero ultimo] trans recorrido [[x] rc :x * :x * :x + 9] serie [0 1 500]
[[0 3] [3 6] [6 15] [40 253]]
Resulta entonces que otro par era (40,253). Así que todos los pares son:
muestra escoge [aplica [[x y] esigual lista (:y * :y) (:x * :x * :x + 9)]] ~
multiconj duplica serie [-300 1 601]
[[-2 -1] [-2 1] [0 -3] [0 3] [3 -6] [3 6] [6 -15] [6 15] [40 -253] [40 253]]
Contar cuántos números menores que 1000000, de la forma
8 · a2 · b - 6 · a2 + 4 · b2 + 5 · b - 6
con a y b enteros positivos, son primos.
Nota: Los números primos son los que tienen como únicos divisores al 1 y a sí mismos, por ejemplo 2, 3, 5, 7, 11, 13, ...
Lo siguiente es una tabla a versus b en la que las celdas son el resultado de evaluar la expresión anterior:
haz "f_ab [[a b] 8 * :a * :a * :b - 6 * :a * :a + 4 * :b * :b + 5 * :b - 6]
tabla!htm "tabla1 endosa "ponprimero ~
expon [mismo [tabla [aplica :f_ab lista]]] duplica serie [1 1 10]
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
1 | 5 | 30 | 63 | 104 | 153 | 210 | 275 | 348 | 429 | 518 |
2 | 11 | 60 | 117 | 182 | 255 | 336 | 425 | 522 | 627 | 740 |
3 | 21 | 110 | 207 | 312 | 425 | 546 | 675 | 812 | 957 | 1110 |
4 | 35 | 180 | 333 | 494 | 663 | 840 | 1025 | 1218 | 1419 | 1628 |
5 | 53 | 270 | 495 | 728 | 969 | 1218 | 1475 | 1740 | 2013 | 2294 |
6 | 75 | 380 | 693 | 1014 | 1343 | 1680 | 2025 | 2378 | 2739 | 3108 |
7 | 101 | 510 | 927 | 1352 | 1785 | 2226 | 2675 | 3132 | 3597 | 4070 |
8 | 131 | 660 | 1197 | 1742 | 2295 | 2856 | 3425 | 4002 | 4587 | 5180 |
9 | 165 | 830 | 1503 | 2184 | 2873 | 3570 | 4275 | 4988 | 5709 | 6438 |
10 | 203 | 1020 | 1845 | 2678 | 3519 | 4368 | 5225 | 6090 | 6963 | 7844 |
La siguienta tabla nos dice cuandos factores primos tiene cada número de la tabla anterior.
tabla!htm "tabla2 endosa "ponprimero ~
expon [mismo [tabla [cuenta factora aplica :f_ab lista]]] ~
duplica serie [1 1 10]
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
1 | 1 | 3 | 3 | 4 | 3 | 4 | 3 | 4 | 3 | 3 |
2 | 1 | 4 | 3 | 3 | 3 | 6 | 3 | 4 | 3 | 4 |
3 | 2 | 3 | 3 | 5 | 3 | 4 | 5 | 4 | 3 | 4 |
4 | 2 | 5 | 3 | 3 | 3 | 6 | 3 | 4 | 3 | 4 |
5 | 1 | 5 | 4 | 5 | 3 | 4 | 3 | 5 | 3 | 3 |
6 | 3 | 4 | 4 | 4 | 2 | 7 | 6 | 3 | 3 | 5 |
7 | 1 | 4 | 3 | 5 | 4 | 4 | 3 | 6 | 3 | 4 |
8 | 1 | 5 | 4 | 3 | 5 | 6 | 3 | 4 | 3 | 5 |
9 | 3 | 3 | 3 | 6 | 3 | 5 | 5 | 4 | 3 | 4 |
10 | 2 | 5 | 4 | 3 | 4 | 7 | 4 | 5 | 3 | 4 |
Con lo siguiente contamos el número de factores de cada valor de cada una de las celdas anteriores:
tabla!htm "tabla3 endosa "ponprimero ~
expon [mismo [tabla [esigual lista 1 cuenta factora aplica :f_ab lista]]] ~
duplica serie [1 1 10]
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Los números primos sólo tienen un factor. Se nota que los números primos sólo están en la columna en la que b=1. Nos hicieron dar cuenta que:
8a2b - 6a2 + 4b2 + 5b - 6 = (4b - 3) (2a2 + b + 2) = n1 · n2
es decir, el producto de dos números, el primer número formado así: n1 = 4b - 3. Si b = 1, n1 será 1, pero si b = 2 curre que n1 será 5. Es decir, los números formados a partir de la fórmula tendrían como factor al número 5, y no serían primos.
Para cualquier b > 1 la expresión dará un número que tendría como factor un n1 diferente de 1, y no será primo. Así que modificamos la expresión fijando b = 1:
haz "f_a [[a b] 8 * :a * :a * 1 - 6 * :a * :a + 4 * 1 * 1 + 5 * 1 - 6]
haz "f_a [[a b] 8 * :a * :a - 6 * :a * :a + 4 + 5 - 6]
haz "f_a [[a] 2 * :a * :a + 3]
Para valores de a entre 1 y 10 obtenemos los siguientes resultados. Escogemos los números primos:
muestra impon [invoca :f_a] serie [1 1 10]
[5 11 21 35 53 75 101 131 165 203]
muestra escoge [esigual lista 1 cuenta factora] impon [invoca :f_a] serie [1 1 10]
[5 11 53 101 131]
Vemos para qué valores de a, el número resultante es igual a 1000000.
muestra resuelve [1000000 - invoca :f_a] [10 1000]
707.10572052558
muestra invoca :f_a 707
999701
muestra invoca :f_a 708
1002531
Vemos que para a = 708 el resultado se pasa de 1000000. Por lo que usamos 707
muestra escoge [esigual lista 1 cuenta factora] impon [invoca :f_a] serie [1 1 707]
[5 11 53 101 131 971 1061 1571 2741 3203 3701 4421 5003 6053 7691 9803 13451 13781
16931 19211 21221 22901 24203 25541 27851 31253 32261 32771 35381 51203 57803 61253
69941 77621 81611 82421 84053 86531 89891 122021 125003 128021 140453 143651 151253
154571 204803 207371 247811 273803 278261 284261 288803 331301 339491 341141 344453
356171 374981 387203 401411 414053 428741 436181 470453 480203 504011 534581 536651
540803 547061 555461 598421 611621 638453 654371 661253 672803 679781 689141 703301
708053 739331 744203 761381 806453 845003 850211 884453 938453 957731 974411]
muestra cuenta ~
escoge [esigual lista 1 cuenta factora] impon [invoca :f_a] serie [1 1 707]
92
Un comerciante quiere fijar el precio de un producto, pero resulta que el producto tiene un 5% de impuesto sobre el precio base. Dado un precio base con dos decimales, se le suma el impuesto truncándolo a dos decimales.
Por ejemplo si el precio base es de $1.11 al agregarle el impuesto queda $1,1655 que se trunca a $1,16 y este último sería el precio al público.
Para comodidad de los clientes el precio final tiene que terminar en 00 centavos, es decir, ser entero. Por ejemplo, si el precio base es $2.86, el impuesto es $0.143, y el precio final es $3.00; por lo tanto $3 es un precio alcanzable.
Preguntas: ¿Hay algún precio final que no se pueda alcanzar? ¿Hay por lo menos tres precios finales que no se puedan alcanzar?
Interesante y extraña pregunta. No creemos haber entendido bien las matemáticas involucradas. De todas maneras...
Intentamos encontrar método que nos dé los precios bases de precios finales propuestos. Si, por alguna razón el método falla para algún precio final propuesto, es posible que aquel preció final no pueda alcanzarse. Buscamos el precio base del precio final 4.00 y de esta forma diseñamos un método:
muestra 4 / 1.05
3.80952380952381
muestra 3.80 * 1.05
3.99
muestra 3.81 * 1.05
4.0005
muestra 100 * 4 / 1.05
380.952380952381
muestra redondea 100 * 4 / 1.05
381
muestra 0.01 * redondea 100 * 4 / 1.05
3.81
haz "encuentra_base [[p] 0.01 * redondea 100 * :p / 1.05]
muestra invoca :encuentra_base 4
3.81
Ahora necesitamos probar si nuestro método para calcular precios base a partir de precios finales funciona:
muestra 1.05 * invoca :encuentra_base 4
4.0005
muestra 100 * 1.05 * invoca :encuentra_base 4
400.05
muestra entero 100 * 1.05 * invoca :encuentra_base 4
400
muestra 0.01 * entero 100 * 1.05 * invoca :encuentra_base 4
4
muestra expon [mismo [0.01 * entero 100 * 1.05 * invoca :encuentra_base]] 4
[4 4]
El primer 4 del par anterior es el precio final sugerido del cual tratamos encontrar el precio base. El segundo 4 es el preciso final calculado a partir del precio base encontrado a partir de precio final sugerido. Ambos son iguales así que 4 sí es un precio final alcanzable. Intentemos otro precio final sugerido:
muestra expon [[0.01 * entero 100 * 1.05 * invoca :encuentra_base] mismo] 5
[4.99 5]
En este caso, nuestro método para encontrar precios bases falló. Quizá porque 5 no es un precio final alcanzable, quiza porque nuestro método tiene fallas. Pero 5 sí es un precio final alcanzable:
muestra invoca :encuentra_base 5
4.76
muestra 1.05 * 4.76
4.998
muestra 1.05 * 4.77
5.0085
Entonces: nuestro método tiene fallas.
Por intuición pensamos que el problema de nuestro método está en la función redondea. La reemplazaremos por la función techo. Con este cambio el método funciona para varios otros precios finales sugeridos:
haz "encuentra_base [[p] 0.01 * techo 100 * :p / 1.05]
muestra expon [[0.01 * entero 100 * 1.05 * invoca :encuentra_base] mismo] 5
[5 5]
muestra expon [[0.01 * entero 100 * 1.05 * invoca :encuentra_base] mismo] 6
[6 6]
muestra expon [[0.01 * entero 100 * 1.05 * invoca :encuentra_base] mismo] 7
[7 7]
muestra expon [[0.01 * entero 100 * 1.05 * invoca :encuentra_base] mismo] 8
[8 8]
Intentamos para muchos otros números y marcamos los pares que son iguales:
funciona "par.sugerido.calculado ~
[expon [[0.01 * entero 100 * 1.05 * invoca :encuentra_base] mismo]]
muestra impon [esigual par.sugerido.calculado] serie [1 1 100]
[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
Buscamos los precios finales sugeridos en los que el método falla. Y vemos si realmente existen razones para que haya fallado:
muestra escoge [comp esigual par.sugerido.calculado] serie [1 1 100]
[17 38 59 80]
muestra invoca :encuentra_base 17
16.2
muestra 1.05 * 16.20
17.01
muestra 1.05 * 16.19
16.9995
muestra invoca :encuentra_base 38
16.2
muestra 1.05 * 36.20
38.01
muestra 1.05 * 36.19
37.9995
muestra invoca :encuentra_base 59
muestra 1.05 * 56.20
59.01
muestra 1.05 * 56.19
58.9995
muestra invoca :encuentra_base 80
76.2
muestra 1.05 * 76.20
80.01
muestra 1.05 * 76.19
79.9995
Contestando a las preguntas: Sí y Sí.
Para un interesante torneo, queremos armar un problema con la siguiente ecuación:
391 · x + 323 · y = n
Lo que buscamos es que si se calculan todos los posibles valores de x e y enteros positivos que cumplen con la ecuación con ese n, haya solución pero sea única (un solo valor posible de x e y).
a) Comprobar que se puede usar el valor n = 2006.
b) Si queremos que n esté entre 10000 y 100000, ¿qué valor de n podemos usar?
391 · x + 323 · y = 2006
y = (2006 - 391 · x) / 323
Resulta que sólo hay 5 enteros positivos para x, los cuales resultan en un y positivo, y solamente uno de ellos x = 1, resulta en un y entero, y = 5. Para cualquier otro x > 5 resultarán valores de y negativos.
escribemat trans recorrido [[x] (2006 - 391 * :x) / 323] serie [1 1 20]
1 5
2 3.78947368421053
3 2.57894736842105
4 1.36842105263158
5 0.157894736842105
6 -1.05263157894737
7 -2.26315789473684
8 -3.47368421052632
9 -4.68421052631579
10 -5.89473684210526
11 -7.10526315789474
12 -8.31578947368421
13 -9.52631578947368
14 -10.7368421052632
15 -11.9473684210526
16 -13.1578947368421
17 -14.3684210526316
18 -15.5789473684211
19 -16.7894736842105
En el caso de n = 2006, x no pudo ser mayor que 5 porque produciría valores de y negativos. Encontremos una forma de calcular estos límites superiores para cualquier n.
muestra resuelve [invoca [[x] (2006 - 391 * :x) / 323]] [0 1000]
5.1304347826087
muestra entero resuelve [invoca [[x] (2006 - 391 * :x) / 323]] [0 1000]
5
funciona "limite.superior ~
[invoca [[n] entero resuelve [invoca [[x] (:n - 391 * :x) / 323]] [0 1000]]]
muestra limite.superior 2006
5
muestra limite.superior 10000
25
muestra limite.superior 100000
255
Usemos este límite superior para proponer valores de x y luego valores de y. Hagamos pruebas con n = 2006
muestra frase [1 1] limite.superior 2006
[1 1 5]
muestra serie frase [1 1] limite.superior 2006
[1 2 3 4 5]
muestra recorrido [(2006 - 391 * ?) / 323] serie frase [1 1] limite.superior 2006
[[1 2 3 4 5]
[5 3.78947368421053 2.57894736842105 1.36842105263158 0.157894736842105]]
muestra trans recorrido [(2006 - 391 * ?) / 323] serie frase [1 1] ~
limite.superior 2006
[[1 5]
[2 3.78947368421053]
[3 2.57894736842105]
[4 1.36842105263158]
[5 0.157894736842105]]
muestra escoge [esentero ultimo] trans recorrido [(2006 - 391 * ?) / 323] ~
serie frase [1 1] limite.superior 2006
[[1 5]]
Aplicamos el mismo desarrollo para crear una función que produzca tríadas [n x y] para un valor de n dado.
funciona "posibles.enteros [invoca [[n] transpon [ponprimero :n lista] ~
recorrido [(:n - 391 * ?) / 323] serie frase [1 1] limite.superior :n]]
muestra posibles.enteros 2006
[[2006 1 5]
[2006 2 3.78947368421053]
[2006 3 2.57894736842105]
[2006 4 1.36842105263158]
[2006 5 0.157894736842105]]
muestra escoge [esentero ultimo] posibles.enteros 2006
[[2006 1 5]]
Usemos esta función para buscar tríadas que tengan valores de y enteros. Buscaremos de forma preliminar entre 10000 y 10100:
muestra impon [escoge [esentero ultimo] posibles.enteros] serie [10000 1 100]
[[] [] [] [] [] [] [] [] [] [] [] [] [] [[10013 19 8]] [] [] [] [] []
[] [] [] [] [] [] [] [] [] [] [] [[10030 5 25] [10030 24 2]] [] [] []
[] [] [] [] [] [] [] [] [] [] [] [] [] [[10047 10 19]] [] [] [] [] []
[] [] [] [] [] [] [] [] [] [] [] [[10064 15 13]] [] [] [] [] [] [] []
[] [] [] [] [] [] [] [] [] [[10081 1 30] [10081 20 7]] [] [] [] [] []
[] [] [] [] [] [] [] [] [] [] [] [[10098 6 24] [10098 25 1]] []]
Para un mismo valor de n existen a veces más de una tríada. Nos interesan sólo las que son únicas. Por ejemplo:
muestra junta escoge [esigual lista 1 cuenta] impon [escoge [esentero ultimo] ~
posibles.enteros] serie [10000 1 200]
[[10013 19 8] [10047 10 19] [10064 15 13] [10115 11 18] [10132 16 12] [10183 12 17]]
Hay muchas tríadas válidas. Probemos las primeras:
muestra aplica [[n x y] 391 * :x + 323 * :y = :n] [10013 19 8]
cierto
muestra aplica [[n x y] 391 * :x + 323 * :y = :n] [10047 10 19]
cierto
muestra aplica [[n x y] 391 * :x + 323 * :y = :n] [10064 15 13]
cierto
Calcular la suma de los divisores positivos impares de 87094528.
Nota: Por ejemplo los divisores de 33 son 1, 3, 11 y 33.
muestra divisores 33
[1 3 11 33]
muestra divisores 87094528
[1 2 4 8 16 32 64 128 256 521 653 1042 1306 2084 2612 4168 5224 8336 10448
16672 20896 33344 41792 66688 83584 133376 167168 340213 680426 1360852
2721704 5443408 10886816 21773632 43547264 87094528]
muestra escoge [modul dista 2] divisores 87094528
[1 521 653 340213]
muestra suma escoge [modul dista 2] divisores 87094528
341388
Cierto número de 5935 cifras está escrito usando sólo tres dígitos distintos, ninguno de los cuales aparece menos de 100 veces. La suma de sus cifras es 5981 y la suma de los cuadrados de sus cifras es 9957. ¿Qué dígitos son y cuántas veces aparece cada uno?
Ejemplo: 2005 tiene 4 cifras, la suma de sus cifras es 2+0+0+5 = 7, y la suma de los cuadrados de sus cifras es 4+0+0+25 = 29.
Reemplazando la tercera ecuación en la primera:
r1·c1 + r2·c2 + (5935 - r1 - r2)·c3 = 5981
Y luego resolviendo para r2.
r1·c1 + r2·c2 + 5935·c3 - r1·c3 - r2·c3 = 5981
r1·c1 + r2·c2 - r2·c3 + 5935·c3 - r1·c3 = 5981
r1·c1 + r2·(c2 - c3) + 5935·c3 - r1·c3 = 5981
r2 = (5981 + r1·c3 - r1·c1 - 5935·c3) / (c2 - c3)
Creamos una función asociada a la segunda ecuación. Esta función devolverá 0 en caso de cumplirse la ecuación. También definimos funciones que devuelven los valores de r2 y r3 a partir de r1, c1, c2 y c3.
para eq2 :r1 :c1 :c2 :c3
haz "li :r1 * :c1 * :c1 + r2 * :c2 * :c2 + r3 * :c3 * :c3
devuelve :li - 9957
fin
para r3
devuelve 5935 - :r1 - r2
end
para r2
devuelve (5981 + :r1 * :c3 - :r1 * :c1 - 5935 * :c3) / (:c2 - :c3)
end
Vemos qué devuelve la función eq2 para varios valores de r1, c1, c2 y c3.
muestra eq2 100 1 2 3
-15462
muestra eq2 5935 - 200 1 2 3
-4192
muestra eq2 100 0 1 2
-3684
muestra eq2 5935 - 200 0 1 2
7586
Vemos que no puede haber una solución para c1 = 1, c2 = 2, c3 = 3 ya que la función eq2 siempre devuelve valores negativos para todos los posibles valores de r1.
Sin embargo, para c1 = 0, c2 = 1, c3 = 2 sí existe algún valor de r1 que cumple con la ecuación 2, ya que la función eq2 cambia de signo en algún valor de r1 entre 100 y 5935-200. Buscamos ese valor:
muestra junta dista [0 1 2] enlista 100
[100 0 1 2]
muestra junta dista [0 1 2] enlista 5935 - 200
[5735 0 1 2]
muestra resuelve [aplica "eq2 junta dista [0 1 2] enlista] lista 100 5735
1942
Calculamos el valor de r2:
muestra aplica [[r1 c1 c2 c3] r2] [1942 0 1 2]
2005
Calculamos el valor de r3:
muestra aplica [[r1 c1 c2 c3] r3] [1942 0 1 2]
1988
Veamos si todo se cumple:
muestra 1942 + 2005 + 1988
5935
muestra 1942 * 0 + 2005 * 1 + 1988 * 2
5981
muestra 1942 * 0 + 2005 * 1 + 1988 * 4
9957
El siguiente código nos sirvió para comprobar que la solución es única:
para rs :cs
haz "r1 resuelve [aplica "eq2 junta dista :cs enlista] lista 100 5935-100
si "NUL = :r1 [devuelve []]
si 0 = esentero :r1 [devuelve []]
haz "r2 aplica [[r1 c1 c2 c3] r2] ponprimero :r1 :cs
si 0 = esentero :r2 [devuelve []]
si 100 > :r2 [devuelve []]
haz "r3 aplica [[r1 c1 c2 c3] r3] ponprimero :r1 :cs
si 0 = esentero :r3 [devuelve []]
si 100 > :r3 [devuelve []]
devuelve frase (lista :r1 :r2 :r3) :cs
fin
muestra combiconj lista 3 serie [0 1 10]
[[0 1 2] [0 1 3] [0 1 4] [0 1 5] [0 1 6] [0 1 7] [0 1 8] [0 1 9] [0 2 3]
[0 2 4] [0 2 5] [0 2 6] [0 2 7] [0 2 8] [0 2 9] [0 3 4] [0 3 5] [0 3 6]
[0 3 7] [0 3 8] [0 3 9] [0 4 5] [0 4 6] [0 4 7] [0 4 8] [0 4 9] [0 5 6]
[0 5 7] [0 5 8] [0 5 9] [0 6 7] [0 6 8] [0 6 9] [0 7 8] [0 7 9] [0 8 9]
[1 2 3] [1 2 4] [1 2 5] [1 2 6] [1 2 7] [1 2 8] [1 2 9] [1 3 4] [1 3 5]
[1 3 6] [1 3 7] [1 3 8] [1 3 9] [1 4 5] [1 4 6] [1 4 7] [1 4 8] [1 4 9]
[1 5 6] [1 5 7] [1 5 8] [1 5 9] [1 6 7] [1 6 8] [1 6 9] [1 7 8] [1 7 9]
[1 8 9] [2 3 4] [2 3 5] [2 3 6] [2 3 7] [2 3 8] [2 3 9] [2 4 5] [2 4 6]
[2 4 7] [2 4 8] [2 4 9] [2 5 6] [2 5 7] [2 5 8] [2 5 9] [2 6 7] [2 6 8]
[2 6 9] [2 7 8] [2 7 9] [2 8 9] [3 4 5] [3 4 6] [3 4 7] [3 4 8] [3 4 9]
[3 5 6] [3 5 7] [3 5 8] [3 5 9] [3 6 7] [3 6 8] [3 6 9] [3 7 8] [3 7 9]
[3 8 9] [4 5 6] [4 5 7] [4 5 8] [4 5 9] [4 6 7] [4 6 8] [4 6 9] [4 7 8]
[4 7 9] [4 8 9] [5 6 7] [5 6 8] [5 6 9] [5 7 8] [5 7 9] [5 8 9] [6 7 8]
[6 7 9] [6 8 9] [7 8 9]]
muestra impon "rs combiconj lista 3 serie [0 1 10]
[[1942 2005 1988 0 1 2] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
[] [] [] [] [] [] []]
muestra junta impon "rs combiconj lista 3 serie [0 1 10]
[1942 2005 1988 0 1 2]
Soluciones de Problemas de otros niveles