WOO logo

Pergunte ao Mago #357

Utilizando cada dígito de 1 a 9 exatamente uma vez, componha três frações, cada uma com um dígito no numerador e dois dígitos no denominador, em que a soma das três frações seja um.

Por exemplo, 8/16 + 9/27 + 3/24 satisfaz todas as condições, exceto que a soma é igual a 23/24, e não a 1.

Gialmere

5/34 + 7/68 + 9/12

Existem permut(9,3)*permut(6,3)*permut(3,3)/fact(3) = 60.480 permutações possíveis para analisar e encontrar a resposta. Devo admitir que tentei por pelo menos uma hora, por tentativa e erro, e não encontrei uma solução.

Então, escrevi um programa para percorrer todas as 362.880 maneiras possíveis de ordenar os nove dígitos e testei todas elas. A parte complicada foi percorrer todas as formas possíveis de ordenar os nove números. Veja como fazer isso, usando ordenação lexicográfica.

  1. Coloque todos os nove elementos em uma matriz, organizados do menor para o maior.
  2. Encontre o último elemento da matriz que seja maior que o elemento seguinte. Se nenhum for encontrado, encerre o programa.
  3. Começando pelo elemento seguinte ao da etapa 2, encontre o último elemento na matriz que seja maior que o da etapa 2.
  4. Troque os elementos da matriz das etapas 2 e 3.
  5. Inverta a ordem dos elementos na matriz, começando pelo elemento seguinte ao da etapa 2 e seguindo até o final.
  6. Voltar para a etapa 2

Seguindo esse processo, você encontrará a resposta correta seis vezes, uma vez para cada uma das seis maneiras de ordenar as três frações.

[spoiler=Código]

Escrevi o seguinte código para ordenar cada dígito de 1 a 9 em ordem lexicográfica e testar se cada um era uma solução.


vazio três_frações(vazio)
{
 int i, x_max, y_max, temp_array[100], hold, pt;
 int lex_array[] = { 1,2,3,4,5,6,7,8,9 };
 int num_elements = sizeof(lex_array) / sizeof(lex_array[0]);
 int contagem = 0;
 bool stop = falso;
 total duplo 3;
 cerr << "Número de elementos =\t" << num_elements << "\n";
 fazer
 {
  contar++;
  tot3 = (double)lex_array[0] / (double)(10 * lex_array[1] + lex_array[2]);
  tot3 += (double)lex_array[3] / (double)(10 * lex_array[4] + lex_array[5]);
  tot3 += (double)lex_array[6] / (double)(10 * lex_array[7] + lex_array[8]); 
  se (tot3 == 1.0)
  {
   cerr << count << "\t";
   cerr << lex_array[0] << "/" << lex_array[1] << lex_array[2] << " + ";
   cerr << lex_array[3] << "/" << lex_array[4] << lex_array[5] << " + ";
   cerr << lex_array[6] << "/" << lex_array[7] << lex_array[8] << "\n";
  } 
  x_max = -1;
  para (i = 0; i < (num_elementos - 1); i++)
  {
   se (lex_array[i] < lex_array[i + 1])
    x_max = i;
  }
  se (x_max >= 0)
  {
   y_max = 0;
   para (i = x_max + 1; i < num_elementos; i++)
   {
    se (lex_array[x_max] < lex_array[i])
     y_max = i;
   }
   hold = lex_array[x_max];
   lex_array[x_max] = lex_array[y_max];
   lex_array[y_max] = hold;
   se (x_max + 1 < num_elementos - 1) // inverter
   {
    para (i = x_max + 1; i < num_elementos; i++)
    {
     temp_array[i] = lex_array[i];
    }
    pt = 0;
    para (i = x_max + 1; i < num_elementos; i++)
    {
     lex_array[i] = temp_array[num_elements - 1 - pt];
     pt++;
    }
   }
  }
  outro
   parar = verdadeiro;
 } enquanto (parar == falso);
}

Essa pergunta é feita e discutida no meu fórum, Wizard of Vegas .

Um homem tinha um barril de vinho de 10 galões e um jarro. Certo dia, ele encheu o jarro com vinho e completou o barril com água. Mais tarde, quando o vinho e a água já estavam bem misturados, ele encheu outro jarro com vinho e completou o barril novamente com água. O barril ficou então com quantidades iguais de vinho e água.

Qual era a capacidade da jarra?

Gialmere

10-5*sqrt(2) =~ 2,9289 galões

Seja j = volume da jarra.

Após o primeiro enchimento do jarro, restaram 10-j galões de vinho no jarro. Depois que a água substituiu o vinho, a proporção de vinho para todo o barril foi (10-j)/10.

Após a jarra retirar o vinho diluído, restaram 10 galões de vinho diluído no barril. A quantidade de vinho puro no vinho diluído pode ser expressa como:

(10-j)*((10-j)/10) = 5

(10-j)^2 = 50

j² - 20j + 100 = 50

j² - 20j + 50 = 0

j = (20 +/- sqrt(400-200))/2

j = (20 +/- 10*sqrt(2))/2

j = 10 +/- 5*sqrt(2)

O jarro não pode ser maior que o barril, portanto devemos usar o sinal negativo:

j = 10 - 5*sqrt(2) =~ aproximadamente 2,92893218813452 galões.

Essa pergunta é feita e discutida no meu fórum, Wizard of Vegas .

Um dado de seis lados é lançado repetidamente até que a soma dos lançamentos seja igual ou superior a 13. Quais são a média, a mediana e a moda do total final?

Gialmere

Média = 14,690219
Mediana = 14
Modo = 13

Para isso, precisei usar uma Cadeia de Markov. A tabela a seguir mostra a probabilidade de cada total final de acordo com a soma acumulada na coluna da esquerda. Comece com os casos óbvios para totais de 13 a 18. Em seguida, para somas acumuladas de 0 a 12, calcule a média das seis células abaixo.

As probabilidades para o estado inicial podem ser encontradas na primeira linha para uma soma de 0.

Cadeia de Markov

Soma dos Rolos 13 14 15 16 17 18
0 0,279263 0,236996 0,192313 0,145585 0,097371 0,048472
1 0,290830 0,230791 0,188524 0,143842 0,097114 0,048899
2 0,293393 0,241931 0,181893 0,139625 0,094943 0,048215
3 0,289288 0,245178 0,193717 0,133678 0,091410 0,046728
4 0,280369 0,242560 0,198450 0,146988 0,086950 0,044682
5 0,268094 0,235687 0,197878 0,153768 0,102306 0,042267
6 0,253604 0,225827 0,193419 0,155611 0,111500 0,060039
7 0,360232 0,193566 0,165788 0,133380 0,095572 0,051462
8 0,308771 0,308771 0,142104 0,114326 0,081919 0,044110
9 0,264660 0,264660 0,264660 0,097994 0,070216 0,037809
10 0,226852 0,226852 0,226852 0,226852 0,060185 0,032407
11 0,194444 0,194444 0,194444 0,194444 0,194444 0,027778
12 0,166667 0,166667 0,166667 0,166667 0,166667 0,166667
13 1.000000 0,000000 0,000000 0,000000 0,000000 0,000000
14 0,000000 1.000000 0,000000 0,000000 0,000000 0,000000
15 0,000000 0,000000 1.000000 0,000000 0,000000 0,000000
16 0,000000 0,000000 0,000000 1.000000 0,000000 0,000000
17 0,000000 0,000000 0,000000 0,000000 1.000000 0,000000
18 0,000000 0,000000 0,000000 0,000000 0,000000 1.000000

Essa pergunta é feita e discutida no meu fórum, Wizard of Vegas .