Autor Tema: ¿Cuantos textos pueden formarse en estas condiciones?

0 Usuarios y 1 Visitante están viendo este tema.

03 Febrero, 2024, 10:15 am
Leído 97 veces

Tachikomaia

  • $$\Large \color{#c88359}\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 601
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Eran 7*4*4*4*3, es decir, en el 1er lugar podía haber 1 de 7 posibles textos, en el 2ndo lugar 1 de 4, y así. Un programa que hice generó esa misma cantidad de textos.

Agregué X e Y así: 7*4*4*4*X*Y*3

Ambos son 4 pero:
Y no puede ser >1 si X=1 (significa que X es el texto 1)
X no puede ser >1 si lo que está justo antes de X es 1 (significa que eso es el texto 1).

Es claro que el cálculo ya no es igual. Y el programa aún no terminó de hacer la lista ¿cuántos textos son?

El programa:
Spoiler
Código: [Seleccionar]
Escena 1
   actions for fotograma 1
      // Frames.
      V1 = -1;
      Max1 = 6;
      V1Texto0 = "Casos de ";
      V1Texto1 = "1er Frame en que ocurrió ";
      V1Texto2 = "Frames en que ocurrió ";
      V1Texto3 = "En 10 Frames, mínimos casos de ";
      V1Texto4 = "En 10 Frames, máximos casos de ";
      V1Texto5 = "En 10 Frames, mínima cantidad de Frames en que ocurrió ";
      V1Texto6 = "En 10 Frames, máxima cantidad de Frames en que ocurrió ";
      // Mov.
      V2 = 0;
      Max2 = 3;
      V2Texto0 = "";
      V2Texto1 = "Mov + ";
      V2Texto2 = "Frenada + ";
      V2Texto3 = "Moviéndose + ";
      // Clic.
      V3 = 0;
      Max3 = 3;
      V3Texto0 = "";
      V3Texto1 = "Clic + ";
      V3Texto2 = "Desclic + ";
      V3Texto3 = "Cliqueando + ";
      // Clac1.
      V4 = 0;
      Max4 = 3;
      V4Texto0 = "";
      V4Texto1 = "Clac + ";
      V4Texto2 = "Desclac + ";
      V4Texto3 = "Claqueando + ";
      // Clac2.
      V5 = 0;
      Max5 = 3;
      V5Texto0 = "";
      V5Texto1 = "Clac + ";
      V5Texto2 = "Desclac + ";
      V5Texto3 = "Claqueando + ";
      // Clac3.
      V6 = 0;
      Max6 = 3;
      V6Texto0 = "";
      V6Texto1 = "Clac + ";
      V6Texto2 = "Desclac + ";
      V6Texto3 = "Claqueando + ";
      // Final.
      V7 = 0;
      Max7 = 2;
      V7Texto0 = "Nada";
      V7Texto1 = "Algo";
      V7Texto2 = "Lo que sea";
      Puntero = 8;
      Completado = "No";
      function ModificarVariable () {
         // ¿La variable puede aumentar?
         if (Valor<Max) {
            // Sí, aumentarla:
            set (Nombre, Valor+1);
            // Obtener suma:
            Suma = V1+V2+V3+V4+V5+V6+V7;
            // Obtener texto:
            Texto = eval("V1Texto"+V1)+eval("V2Texto"+V2)+eval("V3Texto"+V3);
            Texto = Texto+eval("V4Texto"+V4)+eval("V5Texto"+V5);
            Texto = Texto+eval("V6Texto"+V6)+eval("V7Texto"+V7);
            trace (Suma+":\t"+Texto);
            Puntero = 8;
            // Esta función se repetirá.
         } else {
            // No, resetearla:
            set (Nombre, 0);
            // ¿Hay otra variable aumentable?
            if (Puntero>1) {
               // Podríaser, apuntar a esa.
               // Esta función se repetirá.
            } else {
               // Esta variable se pone para que del F3 no vuelva al 2.
               Completado = "Sí";
               stop ();
            }
         }
      }
      function ProcesoaRepetir () {
         Puntero = Puntero-1;
         Nombre = "V"+Puntero;
         Valor = eval(Nombre);
         Max = eval("Max"+Puntero);
         // ¿La variable es tipo distinto de Clac2 y Clac3?
         if (Puntero != 5 && Puntero != 6) {
            // Sí, modificarla.
            ModificarVariable();
         } else if (eval("V"+(Puntero-1))>0) {
            // Es tipo Clac2 o 3. ¿La de tipo Clac anterior tiene valor>0?
            // Sí, modificar la señalada por el puntero.
            ModificarVariable();
         } else {
            ProcesoaRepetir();
         }
      }
   actions for fotograma 2
      ProcesoaRepetir();
   actions for fotograma 3
      ProcesoaRepetir();
      if (Completado == "No") {
         gotoAndPlay (2);
      }
[cerrar]

Ya la terminó y fueron 15359 textos pero veo que tiene algún error, deberé corregir. La descripción que di está bien, lo que debo corregir es cómo lo programé.

Con las correcciones hechas me dió 13440. ¿Creen que está bien?

06 Febrero, 2024, 01:29 pm
Respuesta #1

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 56,141
  • País: es
  • Karma: +0/-0
Hola

Eran 7*4*4*4*3, es decir, en el 1er lugar podía haber 1 de 7 posibles textos, en el 2ndo lugar 1 de 4, y así. Un programa que hice generó esa misma cantidad de textos.

Agregué X e Y así: 7*4*4*4*X*Y*3

Ambos son 4 pero:
Y no puede ser >1 si X=1 (significa que X es el texto 1)
X no puede ser >1 si lo que está justo antes de X es 1 (significa que eso es el texto 1).

Es claro que el cálculo ya no es igual. Y el programa aún no terminó de hacer la lista ¿cuántos textos son?

Si fueran con la X,Y con cuatro valores posibles sin restricciones, las posibilidades totales serían:

\( 7\cdot 4\cdot 4\cdot 4\cdot 4\cdot 4\cdot 3=21504 \)

Descontamos las que no pueden ser:

- Las que tienen \( X=1 \) e \( Y=2,3,4 \)

\( 7\cdot 4\cdot 4\cdot 4\cdot 1\cdot 3\cdot 3=4032 \)

- Las que tienen el anterior de \( =1 \) y \( X=2,3,4 \)

\( 7\cdot 4\cdot 4\cdot 1\cdot 3\cdot 4\cdot 3=4032 \)

Por tanto las válidas son:

\( 21504-4032-4032=13440 \)

Saludos.

07 Febrero, 2024, 02:42 am
Respuesta #2

Tachikomaia

  • $$\Large \color{#c88359}\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 601
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino

10 Febrero, 2024, 08:31 am
Respuesta #3

Tachikomaia

  • $$\Large \color{#c88359}\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 601
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Puse más excepciones, a ver si me ayudan a calcular si la nueva cantidad obtenida (8895) es correcta o no.

Lo de antes sigue igual. Agrego:
No son válidos los textos cuya parte 1 es 1, 4 o 5, si a la vez alguna de las partes 2~6 es 4.
Por ejemplo: Parte 1=1, Parte 2=4, texto inválido.
Otro: Parte 1=5, las partes 2~6 no tienen valor 4, texto podría ser válido (hay que considerar las excepciones que dije en el 1er post).

Parece absurdamente difícil considerando lo poco útil que es (sólo para confirmar un número, no alcanza para confirmar que el programa genere bien la lista, quizá sea la cantidad correcta por casualidad), pero si a alguien le gusta el reto, ahí lo tiene.

10 Febrero, 2024, 11:25 am
Respuesta #4

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 56,141
  • País: es
  • Karma: +0/-0
Hola

Puse más excepciones, a ver si me ayudan a calcular si la nueva cantidad obtenida (8895) es correcta o no.

Lo de antes sigue igual. Agrego:
No son válidos los textos cuya parte 1 es 1, 4 o 5, si a la vez alguna de las partes 2~6 es 4.
Por ejemplo: Parte 1=1, Parte 2=4, texto inválido.

Con esta restricción añadida a las anteriores. Contamos:

- Aquellos cuya primera parte es 2,3,6 ó 7. Razonando como en el planteamiento que hice en mi anterior mensaje serían:

\( 4\cdot 4\cdot 4\cdot 4\cdot 4\cdot 4\cdot 3-4\cdot 4\cdot 4\cdot 4\cdot 1\cdot 3\cdot 3-4\cdot 4\cdot 4\cdot 1\cdot 3\cdot 4\cdot 3=7680 \)

- Aquellos cuya primera parte es 1,4 ó 5. Entonces las posibilidades son:

\( 3\cdot 3\cdot 3\cdot 3\cdot 3\cdot 3\cdot 3-3\cdot 3\cdot 3\cdot 3\cdot 1\cdot 2\cdot 3-3\cdot 3\cdot 3\cdot 1\cdot 2\cdot 3\cdot 3=1215 \)

 En total:

\( 7680+1215=8895 \)

Citar
Otro: Parte 1=5, las partes 2~6 no tienen valor 4, texto podría ser válido (hay que considerar las excepciones que dije en el 1er post).

 Aquí, ¿qué quieres decir? ¿es otro conteo distinto? ?No tantas restricciones como las del punto anterior sino solo para la primera parte igual a cinco?

 Si así fuese sería:

\( 6\cdot 4\cdot 4\cdot 4\cdot 4\cdot 4\cdot 3-6\cdot 4\cdot 4\cdot 4\cdot 1\cdot 3\cdot 3-6\cdot 4\cdot 4\cdot 1\cdot 3\cdot 4\cdot 3=11520 \)

\( 1\cdot 3\cdot 3\cdot 3\cdot 3\cdot 3\cdot 3-1\cdot 3\cdot 3\cdot 3\cdot 1\cdot 2\cdot 3-1\cdot 3\cdot 3\cdot 1\cdot 2\cdot 3\cdot 3=405 \)

\( 11520-405=11115 \)

Saludos.

14 Febrero, 2024, 02:35 am
Respuesta #5

Tachikomaia

  • $$\Large \color{#c88359}\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 601
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Ese "Otro" es simplemente otro ejemplo para que se entendiera la restricción.

Bueno, coincidimos en el número de nuevo, pero esta vez no te entendí. Igual déjalo, estoy haciendo demasiados cambios en el programa y ya no tengo claro qué restricciones quiero, debo pensarlo más.

14 Febrero, 2024, 11:12 am
Respuesta #6

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 56,141
  • País: es
  • Karma: +0/-0
Hola

Bueno, coincidimos en el número de nuevo, pero esta vez no te entendí. Igual déjalo, estoy haciendo demasiados cambios en el programa y ya no tengo claro qué restricciones quiero, debo pensarlo más.

Pues es exactamente el mismo argumento del otro caso. Pregunta las dudas concretas.

Por ejemplo aquí:

- Aquellos cuya primera parte es 2,3,6 ó 7. Razonando como en el planteamiento que hice en mi anterior mensaje serían:

\( 4\cdot 4\cdot 4\cdot 4\cdot 4\cdot 4\cdot 3-4\cdot 4\cdot 4\cdot 4\cdot 1\cdot 3\cdot 3-4\cdot 4\cdot 4\cdot 1\cdot 3\cdot 4\cdot 3=7680 \)

 Es exactamente igual, pero en la primara posición cuatro opciones (2,3,6,7) en lugar de las siete que había. Las otras tres opciones del primer texto (1,4,5) las estudiamos a parte porque tienen otras restricciones.

Saludos.