Reducir un conjunto de números partiendo de una agrupación mayor

Se que eres el experto mas demandado y con mayor puntuación, y que entre todos te exigimos un gran esfuerzo, pero lo cierto es que me he quedado atascado en el problema que te he planteado hace unos días y al cual me respondiste con gran celeridad. Me gustaría hacerte llegar la agrupación de números de la que te hablaba porque no encuentro ningún nexo de unión como el que me proponías para resolver el problema, ya que las agrupaciones solo se pueden hacer de 23 grupos (o menos) con un mismo número común y si buscamos 2 números en común este solo se repite como máximo en 3 grupos diferentes. Ya no sé por donde tirar. ¿Se te ocurre algo diferente?

1 Respuesta

Respuesta
1

Lo que yo te di fue una respuesta teórica a la pregunta de cual era el número mínimo de grupos, pero pudiendo construir esos grupos de la forma que queramos. Me parece que lo que tu propones es algo distinto. Es que ya dados unos grupos se elija el menor número posible de ellos que abarquen los 243 números.

Pues te voy a decir:

Es un problema muy difícil a menos que se cuente con una potencia de cálculo brutal y se puedan examinar todas las combinaciones. Y por lo que me dices que son 243 números en grupos de 23 te digo que ni con todos los ordenadores del mundo se pueden probar todas las posibilidades que hay. Y por supuesto olvídate de hacerlo con Excel, se necesita un programa más potente de calculo como uno hecho en C o Pascal, como mal menor uno hecho en VisaulBasic auténtico.

Te digo que es difícil porque varios años estuve haciendo programas de reducción de quinielas donde se perseguía algo como cubrir una serie de apuestas con el menor numero de columnas, y había muchos métodos donde no se conseguía el método óptimo por más que el ordenador probara horas y días.

Mándame los datos completos si quieres, pero no te garantizo que lo pueda resolver. Y como dices, tengo mucho trabajo y no sé cuándo podré ponerme con ello.

Mi correo es [email protected]

No Masema 2010. No cierres la pregunta, porque así puede haber alguien interesado en el mismo problema que le sirva si le doy solución.

¿Dices qué lo que me mandas es una reducción perfecta de 11 triples al 12?

3^11 = 177147 columnas posibles

las columnas que cubre al 12 cada apuesta que se hace son:

1 + 22 + 4·C(11,2) = 1+22+ 220 = 243

177147 / 243 = 729

No lo entiendo, para reducir 11 triples al 12 se necesitan al menos 729 columnas y muy probablemente bastantes más.

Además cuando se parte de un sistema al 12 y se pretende dejarlo en menos apuesta lo que se reduce es al 11 no al 13.

Este sistema no lo tengo. Cuando hice los sistemas era 1993 más o menos. Tenia un Intel 8086 con una memoria de 640 kb y un programa TurboBasic que no admitía matrices de más de 65536 bytes, como la estructura integer ocupaba 2 bytes, el máximo que podía almacenar para hacer cálculos complejos eran sistemas en que las columnas posibles fueran menos de 32768. Este de aquí se pasa. Hace mucho que los hice, no recuerdo los algoritmos y lo que es aun peor, algunos estaban hechos en código máquina, ahi si que no hay forma de volver a entender lo que hacían a menos que me dedique únicamente a eso.

No obstante algunos métodos se obtenían teóricamente, aunque eran más simples que este.

Contéstame esa dudas que tenía al principio y explicame un poco mejor que significan los datos de la hoja. Y explicame como es la teoría que usas.

No si si lo que quieres es un método al 13 para 11 triples ya que cada columna que apuestas cubre 1 con el catorce y 22 con el trece. Y lo que me mandas son 243 de las 177147 posibles.

Y entonces lo que querrías sería cada una de las combinarla con otras que variaran en 6 triples para tener un sistema al 13.

Bueno ya sabes que el sistema al 13 necesitara al menos

177147 / 23 = 7702.04 apuestas

Pero no es eso lo que quieres porque me planteas reducir el número de columnas, luego lo que quieres es asegurar el 11. En sistema al trece para x triples se puede combinar con uno al 12 para y triples y se obtiene uno al 11 para x+y triples.

Huy que lío, mejor que me expliques bien lo que quieres hacer y qué es lo que ma has mandado.

Tienes razón, yo lo tengo muy claro porque llevo tiempo con esto, pero comprendo que te he liado un poco, lo mejor es que te envíe el desarrollo inicial.

Se trata de las 243 columnas a distancia 5 que contienen cada una de ellas, una y sola una de 12 en una combinación de 11 triples (no es otra cosa que la reducción perfecta al 12 de 11 triples). Estas 243 columnas contienen a su vez 22 columnas al 13 y 1 de 14.

No se si me he expliado muy bien pero para que te quede mas claro, te la haré llegar a través de la cuenta de correo que me enviaste.

Saludos,

Pues es una pena porque he recuperado del ordenador anterior el programa que hice en su momento. Como te decía, la limitación era para sistemas de 32768 columnas luego pude calcular sistemas hasta 9 triples o hasta 8 triples y 2 dobles.

El de 9 triples debía ser tan caro o poco optimizado que no lo puse en catálogo.

El mejor optimizado quizá sea el de 7 triples al 13 con garantía total de 13 con 186 columnas en lugar de las 243 que serían necesarias haciéndola con boletos de reducidas.

El de 8 triples no suponía apenas mejora 552 frente a las 558 del anterior tomado tres veces.

Y el método de 9 no tiene mejora. Aparte aquel el ordenador no podía con métodos tan grandes, lo tenia trabajando día y noche pero no podía hacer más.

Volviendo al tema. Dices que están a distancia 5, supongo que con eso quieres decir que todo par de apuestas tienen al menos 5 signos distintos. Y con reducción perfecta no sé que quieres decir, supongo que será que ninguna columna se pueda acertar al trece por dos de las apuestas. En un sistema de reducción al trece se obtiene una reducción perfecta en el sentido que he dicho yo cuando la distancia es 3.

Es que con 243 apuestas te quedas muy lejos de cubrir el 13. Para cubrir el trece ya habíamos quedado que se necesitan 7703 apuestas al menos.

Con este sistema suponiendo que sea perfecto tu probabilidad de acertar trece es

243·23 / 177147 = 23/729 = 0.03155 = 3.155 %

Es que no se si estamos hablando de lo mismo. Yo veo una tabla con 243 elementos, lo cual sería un sistema de 5 triples, entonces cada apuesta tiene 11 columnas en su entorno de acierto de 13 o 14, mientras que tu pones 23 columnas en su entorno.

Necesitaría conocer la teoría que estás usando para profundizar en el problema.

No obstante si lo que me dices es: No te preocupes por nada, tú simplemente consigue que con el menor posible de esas columnas tengamos los 243 números podría intentar algo parecido a lo que hice entonces, pero es que no puedo dedicarle mucho tiempo porque se me agolpan las preguntas.

Voy a ver si consigo la versión autoinstalable del programa de quinielas que hice y te la mando por correo. Solo la usamos 2 personas en el mundo que yo sepa. Necesitarás un Windows que te deje ejecutar aplicaciones MS-DOS de 16 bits. Con Windows 7 Premium no funciona, a lo mejor con Ultimate. Con XP, 98, 95, 3.11, MS_DOS 6.22 si que funciona. Aunque ahora que lo pienso, la versión autoextraible necesita al menos Windows 95, si te pasara los ejecutables podría incluso ejecutarse desde un disquete de arranque MSDOS. Bueno, todo eso son reliquias, con un XP creo lo podrás ejecutar, no se que tal ira la integración con Office 2010, yo lo usé con 2003 como mucho.

Creo que no debo contestarte todavía porque intuyo que no te ha dado tiempo a ver el último correo que te he enviado.

Seguiremos en contacto

saludos,

No había visto todavía esto que me mandas cuando escribí la respuesta en TodoExpertos. Sería mejor que esto que escribes lo hicieras en todoexpertos porque así esta todo el dialogo en un solo sitio. Creo que con lo que dice y a falta de ver el libro ya voy entendiendo lo que quieres.
Te mando el programa que hice hace años, aunque a lo mejor no lo puedes ejecutar por incompatibilidad, yo lo ejecuto en un ordenador que tengo con Windows XP y funciona bien
Dentro de las limitaciones que tiene.
Espera que lo he mirado. Con mi programa tomas el método de 7 triples por 186 apuestas pones todas las combinaciones para lo otros cuatro triples y son

81 · 186 = 15066 apuestas, hemos conseguido algo aunque ya tienes algo mejor

Seguramente si adaptara los programas de cálculo de entonces para un ordenador actual podría trabajar el método de 11 triples y se podría conseguir algún método mejor que el que tienes. Aunque no tengo ni idea, el método de calculo era parecido a la fuerza bruta y con 11 triples no sé si podría hacer algo.

Me interesa la teoría esta de bloques que usas. ¿Está escrita en algún sitio?

Dices que cada columna hay 729 y de esas 729 solo hay una que acierta el 12, es decir que entre cualquier par de ellas hay cinco diferencias al menos

Cada apuesta cubre 243 al 12

177147 / 243 = 729

Si, es posible lo que dices, aunque no se cual ha sido el método para conseguir esa separación de todas las apuestas en 243 grupos de 729, no se si ha sido fácil o es difícil.

Tampoco se la relación entre esta tabla 243 x 729 con la 243 x 23 que me mandaste ayer.

Bueno, tengo que dejarlo que tengo cosa que hacer.

Me has planteado tantas cuestiones que no se por donde empenzar, tu cerebro trabaja a demasiada velocidad y no te equivocas en la mayoría de tus planteamientos, pero voy a intentar aclarar algunos conceptos:

En primer lugar gracias por el programa, lo he probado y funciona perfectamente, puede que incluso mejore algunas reducidas que generan otros mas modernos, pero es que hoy en día con programas gratuitos como Megaquín, Free1X2 o incluso los dedicados a realizar reducciones como el Cristal1x2 se queda un poco obsoleto, pero tengo que reconocer que está currado.

En relación a la reducida perfecta, esta se podría definir como aquella reducción con la que se obtiene un único premio de la reducción perseguida. Si hablamos de quinielas de fútbol, podríamos decir que existen unicamente las siguientes reducciones perfectas:

4 TRIPLES........ reducidos al 13
13 TRIPLES........ reducidos al 13
11 TRIPLES........ reducidos al 12
7 DOBLES ........reducidos al 13
15 DOBLES ........reducidos al 13

No exiten mas reducciones perfectas.

Yo trabajo sobre la reducida al 12 de 11 triples, que se puede encontrar en la red en muchos sitios, esta reducción coincide a su vez con los 11 triples a distancia 5, que como tu muy bien dices, cada apuesta tiene al menos 5 signos distintos con cualquiera de las otras 728. Por supuesto que no me voy a llevar el mérito de desarrollar este método ya que para llevarlo a cabo se utilizan sistemas basados en álgebra lineal y cálculo matricial. Lo único que yo he hecho ha sido desarrollar las 242 columnas restantes, pero esto no tiene demasíado mérito, ya que simplemente hay que sustituir las columnnas mediante un método inverso.

En fin si te interesa algo de todo esto que te cuento, te recomiendo ver estos enlaces, <strong style="line-height: 1.5em;">pero cuidado que engancha...

http://www.foro1x2.com/viewtopic.php?f=33&t=4445

http://www.free1x2.com/foros/viewtopic.php?t=27028

y por supuesto, la página del amigo Paco HH, con todas las distancias y records conocidos.

http://quinielandia.blogspot.com.es/2012/07/todas-las-combinaciones-todas-las.html

¿Por qué utilizo el método de las columnas para buscar una reducción?

Pues bien, sobre este tema no se si encontrarás información, yo lo desconozco, pero como ya te he dicho llevo meses trabajando sobre este método y no podría asegurar que sea el mas adecuado para obtener el fin perseguido, pero si puedo asegurar lo siguiente:

1º En esta agrupación se encuentran todas las combinaciones posibles

2º La ordenación de las columnas impide que en una misma columna concurran mas de una quiniela de 14, 13 o 12 (es decir n, n-1 o n-2)

3º La afirmación anterior nos lleva a la conclusión que entre todas las columnas tenemos 1 de 14, 22 de 13 y 220 de 12 (uno en cada columna, ni mas ni menos y esto está contrastado y comprobado)

En relación a las columnas de números que te envíe (243 columnas con 23 números). Cada columna simboliza las primeras 243 combinaciones (de la 1 a la 243, empezando por la 11111111111111 hasta la 11122111111111) y los números de cada columna son las n y n-1 columnas que cubre cada columna, es decir, 14 y 13 (asi mismo y a 22 más). Bien, te habrás dado cuenta que solo estamos analizando las columnas de la primera fila, pero la secuencia se repite exactamente igual en las demás, es fácilmente comprobable.

Bueno, espero haber aclarado algunas de las cuestiones planteadas y si no es así quedo a tú disposición para intentarlo nuevamente,

Saludos,

De momento cuenta con este método de 16 columnas y comprueba si está bien. Puede que no haya hecho bien el programa

1, 24, 28, 30, 36, 38, 40, 11, 3, 5, 7, 9, 48, 50, 52, 54.

Esto es lo primero que da eligiendo la primera columna que menos usada está. He probado con métodos aleatorios pero dan 16 o peor.

Y esto solo sería el comienzo, lo siguiente sería quitar las peores columnas y reemplazar, pero ahora mismo no tengo tan claro como hacerlo.

A modo de ilustración este ha sido el método hasta ahora.

Private Sub CommandButton1_Click()
Dim Tabla(243, 23), Cub(243), Inv(243, 243), TotInv(243), MapaUsadas(243, 23), Usadas(243), MenosUsadas(243), Sistema(243) As Byte
Dim i, j, k As Byte
Dim Elim, Apues, MinUsadas, NumMenosUsadas, Elegido As Byte
Randomize
ListBox1.Clear
For i = 1 To 243: TotInv(i) = 0: Cub(i) = 0: Usadas(i) = 0: Next
For i = 1 To 243
  For j = 1 To 23  
    k = Cells(j + 1, i)
    Tabla(i, j) = k
    TotInv(k) = TotInv(k) + 1
    Inv(k, TotInv(k)) = i
  Next
Next
Elim = 0: Apues = 0
While Elim < 243
  MinUsadas = 255
  For i = 1 To 243
    If Usadas(i) < MinUsadas Then
      MinUsadas = Usadas(i)
      NumMenosUsadas = 1
      MenosUsadas(1) = i
    ElseIf Usadas(i) = MinUsadas Then
      NumMenosUsadas = NumMenosUsadas + 1
      MenosUsadas(NumMenosUsadas) = i
    End If
  Next
  If CheckBox1 Then Elegido = Int(1 + Rnd * NumMenosUsadas) Else Elegido = 1
  Elegido = MenosUsadas(Elegido)
  Apues = Apues + 1
  Sistema(Apues) = Elegido
  For i = 1 To 23
    k = Tabla(Elegido, i)
    Cub(k) = Cub(k) + 1
    If Cub(k) = 1 Then
      Elim = Elim + 1
      For j = 1 To TotInv(k)
        Usadas(Inv(k, j)) = Usadas(Inv(k, j)) + 1
      Next
    End If
  Next
Wend
For i = 1 To Apues
  ListBox1.AddItem Str(i)
  ListBox1.List(i - 1, 1) = Sistema(i)
Next
End Sub

Ya verás cómo la página me quita la alineación que he hecho. De todas formas te mando el libro.

Creo que de momento es suficiente, lo que te decía del quitar y reemplazar no sé si podre hacerlo. Puntúa ya y mándame otra pregunta por si consigo algo. Sigo sin entender porque con esto se obtiene un método al trece pero he hecho lo que pedías.

No tengo palabras, efectivamente lo has conseguido, acabo de comprobarlo y tu reducción obtiene cien por cien al 13 con 11664 columnas, ha sido un gran avance aunque estoy seguro que se puede mejorar.

Si algo tengo claro es que para ser un gran programador, hay que ser previamente un gran matemático.

Gracias,

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas