Ir para o conteúdo

03 · Racionais: produtos cruzados e redução

Racionais: produtos cruzados e redução

Trate uma fração como um par de inteiros e torne seu valor independente do numerador e denominador escolhidos.

Antes deste capítulo

Você já distingue representante, classe de equivalência e forma normal.

Ao terminar, você poderá
  • explicar com suas palavras a definição matemática de “Racionais: produtos cruzados e redução”
  • apontar como essa definição é representada em dados Python
  • prever uma execução pequena a partir do código real
Definição matemática

Com denominadores não nulos, `p/q` e `r/s` são iguais exatamente quando `p*s=q*r`; assim `1/2` e `2/4` têm o mesmo valor.

Representação dos dados

`Rational` guarda numerador e denominador inteiros, rejeita denominador zero e usa `reduction()` para escolher uma forma legível.

Implementação em Python

`p/q ~ r/s` → `p * s == q * r` → `Rational.__eq__`

Implementação e testes para ler junto com o capítulo

peano/rational.py · tests/test_rational.py

Definição matemática

Definição matemática

Com denominadores não nulos, p/q e r/s são iguais exatamente quando p*s=q*r; assim 1/2 e 2/4 têm o mesmo valor.

Representação dos dados

Representação dos dados

Rational guarda numerador e denominador inteiros, rejeita denominador zero e usa reduction() para escolher uma forma legível.

Implementação em Python

Implementação em Python

__eq__ multiplica em cruz, __add__ constrói um denominador comum e a redução normaliza o sinal e divide pelo máximo divisor comum.

A correspondência exata usada no curso:

`p/q ~ r/s` → `p * s == q * r` → `Rational.__eq__`

Fluxo de execução

Fluxo de execução

A comparação desce até a multiplicação e a igualdade de inteiros, mostrando a reutilização da torre numérica.

Previsão antes de executar

Preveja o booleano da igualdade e a forma reduzida de `2/4`.

Experimento · Racionais: produtos cruzados e redução Não executado
⌘ / Ctrl + Enter
Saída
Primeiro escreva sua previsão; depois execute.

Verificação com testes

Verificação com testes

Os testes comparam frações equivalentes, seus hashes e a rejeição do denominador zero.

Escopo e limites

Escopo e limites

Componentes grandes ampliam o custo dos naturais unários na base da implementação.

Qual afirmação descreve corretamente a implementação de “Racionais: produtos cruzados e redução”?