Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Naturais, inteiros e recursividade

Naturais, inteiros e recursividade

Uma leitura adicional. O título descreve o conteúdo..

Paulo Bordoni

July 05, 2013
Tweet

More Decks by Paulo Bordoni

Other Decks in Education

Transcript

  1. Cara, depois do primeiro tubo, você não para mais! Conte

    aí prá mim Loirinha. Ok, p’rá cada tubo feito vou acrescentar um risquinho na areia: | | | | |
  2. | || ||| |||| ||||| |||||| ||||||| |||||||| ||||||||| ||||||||||

    ||||||||||| |||||||||||| ||||||||||||| |||||||||||||| ||||||||||||||| Sim Loirinha, basta acrescentar uma | após a outra. Depois de um natural sempre vem outro, o seu sucessor. A começar pelo zero. Um depois do outro ... Então não para nunca mais – não acaba ?
  3. Nasceu em 23/01/1862 Morreu em 14/02/1943 Loirinha, este é David

    Hilbert, um dos grandes matemáticos da história da humanidade. Ele é o pai do Formalismo. Vou te contar uma fábula da Matemática, atribuída à ele. Ela responderá tua dúvida!
  4. Hilbert era um gênio, construiu um Hotel que sempre tinha

    quartos vagos! Um certo dia, o Hotel de Hilbert estava cheio de brasileiros – lotadinho!
  5. brasileiro B1 brasileiro B2 brasileiro B3 quarto Q3 quarto Q2

    quarto Q1 Cada nome! Só matemáticos mesmo ...
  6. chinês C1 chinês C2 chinês C3 Eis que chega uma

    infinidade de chineses. Todos querendo se hospedar no Hotel do famoso Hilbert!
  7. brasileiro B1 quarto Q1 brasileiro B2 quarto Q3 brasileiro B3

    quarto Q5 vago vago vago Um Então Hilbert fez sua mágica! Acomodou todos os brasileiros nos quartos ímpares. E os pares ficaram vazios!
  8. Loirinha, se o Hotel tivesse só 7 quartos, iam sobrar

    brasileiros no deslocamento para os quartos ímpares! B1 Q1 Q2 B2 Q3 Q4 B3 Q5 Q6 B4 Q7 B5 B6 B7 ????? É mesmo, Surfista. Mesmo se fossem 70, 700 ou 7.000.000 de quartos!
  9. brasileiro B1 brasileiro B2 brasileiro B3 chinês C1 chinês C3

    chinês C2 Em seguida, Hilbert acomodou os chineses nos quartos pares.
  10. B1 B2 B3 B4 Q1 Q3 Q5 B7 Q2 Q4

    Q6 C1 C2 C3 C4 Q8 Em roxo escuro, uma correspondência de 1 para 1 entre os Naturais e os Ímpares. Em roxo claro entre os Naturais e os Pares.
  11. Professor, e qual é a moral dessa história ? Conjuntos

    infinitos são os únicos que podem ser colocados em correspondência biunívoca com seus subconjuntos próprios.
  12. É uma verdade ululante!! No caso de conjuntos finitos sempre

    vão sobrar ou faltar elementos num dos conjuntos. 1 2 3 4 1 2 3 4 5 É isso mesmo, Surfista, veja só! ??
  13. E os meus risquinhos | | | | | na

    areia ? Bem, você também poderia ter marcado X’s na areia:
  14. Ou grupinhos de 5, coisa muito comum. É, de 2

    em 2 fica mais fácil de contar!
  15. 3 3 3 Nesta posição 3 vale 3 Nesta 3

    vale 30 Nesta 3 vale 300 Insistindo, ela é posicional...
  16. 472 = 400 + 70 + 2 = 4×100 +

    7×10 + 2×1 = 4×102 + 7×101 + 2×100 A posição e a expansão em potências de 10: Confira meu exemplo.
  17. É ! De 0 ao 9 tudo bem. Dez símbolos

    resolvem. Mas e depois? E o 10, o 11, o 12, ... Não sei como passar da cerquinha | | | | | | | para a notação posicional ! Minhas ondas se foram...
  18. Queridos alunos, vocês fizeram uma pergunta bem difícil. Como representar

    a infinidade com um conjunto finito de símbolos? A solução é genial ! A representação posicional utiliza somas, multiplicações e potências.
  19. A ideia é ir agrupando 1 grupo com 5 grupos

    de 5 2 grupos de 5 3 unidades 123 5
  20. 1235 = 1×52 + 2×51 + 3×50 A posição e

    a expansão em potências de 5: Confira como fica:
  21. 1 grupo com 2 grupos de grupos de 2 1

    grupo com 2 grupos de 2 1 unidade Saquei mestre! 1101 2 Nenhum grupo de 2
  22. 11012 = 1×23 + 1×22 + 0×21 + 1×20 A

    posição e a expansão em potências de 2: Confira como fica:
  23. Além disso os dígitos vão de 0 até b-1 e

    usamos somas, multiplicações e potências da base. Resumindo: • Base b = 10: posição N  10N • Base b = 5: posição N  5N • Base b = 2: posição N  2N com N iniciando em 0.
  24. As ondas se foram, mas agora entendi o 10, o

    11 ... Eu não entendo! Para definir número preciso das operações com números?!?
  25. Giuseppe Peano Nasceu em 27/08/1858 Morreu em 20/04/1932 O italiano

    Giuseppe Peano, meu ex- namorado, respondeu isso em 1889, quando enunciou o “Princípio da Indução Finita” para os números naturais. Tenho saudades do meu gatão Giuseppe! Era uma jovem lindíssima!
  26. Características da função sucessor s : ℕ → ℕ* •

    O item 1 define zero como primeiro natural; • Os itens 2 e 3 informam que ela é sobrejetora; • O item 4 informa que ela injetora. O item 5 é o pulo do Peano. Ele permite provar afirmações sobre subconjuntos infinitos de ℕ.
  27. Loirinha, vamos te ensinar a tocar piano. Professor, muitos colegas

    disseram que essa tal de técnica da indução finita é dificílima de usar ! Se você é matemático, leia o texto Conjuntos e Fundamentos, de Fernando Ferreira
  28. Imagine que você tem uma propriedade P que depende de

    n e quer garantir que ela vale para todo n em ℕ: Como ℕ é infinito não dá, morro antes de acabar! Se fossem 10, 20, 100 ou 1.000.000 dava p’rá provar 1 a 1.
  29. Então acertei na mega-sena, pois: Consegui garantir que a propriedade

    P vale para toda a infinidade dos números naturais. O truque que o Peano ensinou à Mestra foi que, se ela: 1. Provar a validade de P para o 0. 2. E, assumindo a validade de P para n, conseguir garantir a validade de P para s(n).
  30. Loirinha - para derrubar todos os dominós de uma fieira

    como esta, você precisa derrubar o primeiro. É Surfista – e depois garantir que: derrubado um dominó, o seguinte também será derrubado!
  31. A função sucessor também permite efetuar definições recursivas para conjuntos

    indutivos. Mostre aí Professor! Aliás, não sei o que seria da COMPUTAÇÃO sem a recursividade.
  32. Professor, o que é uma definição recursiva ? Bem, aquela

    que recorre a si mesma ... Explico melhor a seguir.
  33. A ideia chave nas definições recursivas é parecida com a

    seguinte: 1. Deus criou Adão como ser humano, implantando isso em seus genes. 2. Garantiu que os genes de Adão fossem transmitidos de pai para filho. Então toda a humanidade herdou as características de Adão! É até patético!
  34. A ideia chave de uma definição recursiva em um conjunto

    indutivo é a seguinte: 1. Efetuar a definição para o 1º elemento do conjunto; 2. Garantir que ela seja transmitida ao sucessor de cada elemento do conjunto. Então o “truque de Peano” garante: a definição vale para todos os elementos do conjunto . Meu italianinho realmente foi genial!
  35. Definimos, recursivamente, a adição para naturais usando a função sucessor:

    x + 0 = x x + s(y) = s(x+y) Na 1ª linha o Professor deu a base e, na 2ª, definiu para os seguintes recorrendo ao sucessor e à própria adição, o rito de passagem!
  36. x + 1 = x + s(0) = s(x+0) =

    s(x) Se anotarmos por 1 o sucessor de 0, isto é, assumirmos que 1 = s(0), teremos: Muito fácil, Mestra! Tudo que a função sucessor faz é somar 1 ao seu argumento: s(x) = x + 1
  37. A cada tubo feito SOMO um risquinho aos anteriores: |||

    + | = |||| É muita formalidade p’rá uma coisa tão simples assim!
  38. Adoro tocar piano! Mostre aí a definição recursiva da multiplicação,

    Professor! Definimos a multiplicação para naturais, usando a função sucessor e a adição: x ∗ 0 = 0 x ∗ s(y) = x + x∗y
  39. x ∗ 2 = x ∗ s(1) = x +

    x∗1 = x + x x ∗ 1 = x ∗ s(0) = x + x∗0 = x + 0 = x Se anotarmos por 2 o sucessor de 1, isto é, assumirmos que 2 = s(1), teremos: É mesmo muito fácil, Professora!
  40. 1 = s(0), 2 = s(1), 3 = s(2), ...

    8 = s(7) 9 = s(8) 10 = s(9) Surfista repita a ideia anterior, usando a tabela de definições aos meus pés: Trivial minha cara Mestra: x ∗ 3 = x + x + x, x ∗ 4 = x + x + x + x, ... x ∗ 10 = x + x + ... + x 10 vezes
  41. Adoro tocar piano! Mostre aí a definição recursiva da potenciação,

    Professor! Definimos a potenciação para naturais, usando a função sucessor e a multiplicação: x ∗ ∗ 0 = 1 x ∗ ∗ s(y) = x∗ (x ∗ ∗y)
  42. x ∗ ∗ 1 = x ∗ ∗ s(0) =

    x ∗ (x∗ ∗ 0) = x ∗ 1 = x É fácil ver que: x ∗ ∗ 2 = x ∗ ∗ s(1) = x ∗ (x ∗ ∗1) = x ∗ x x ∗ ∗ 3 = x ∗ ∗ s(2) = x ∗ (x ∗ ∗ 2) = x ∗ (x ∗ x)
  43. d N ... d 2 d 1 d 0 =

    d N ×bN + ... + d 1 ×b1 + d 0 ×b0 Os dígitos, na: • base 10 são: 0, 1, 2, ..., 9 • base 5 são: 0, 1, 2, 3, 4 • base 2 são: 0, 1 A definição de representação posicional dígitos
  44. Você poderá aprender muito mais no texto Conjuntos e Fundamentos,

    de Fernando Ferreira. Uma excelente leitura. Pô, tá muito chato! Vou pegar uma onda. Bem, aprender dói, mas a escolha é sua!
  45. Dizem que Gottfried Wilhelm von Leibnitz criou o sistema binário

    Nasceu em 01/07/1646 Morreu em 14/11/1716
  46. bit 0 bit 1 Bit = Binary Digit É usual

    a associação da figura!
  47. Com 1 byte faço 28 = 256 números. Com 2

    bytes faço 216 = 28∗28 = 65.536 números. Com 4 bytes faço 232 = 216∗216 = 4.294.967.296 números. As denominações padronizadas são: • 1 byte  byte • 2 bytes  integer • 4 bytes  long integer
  48. Vejam a tabela dos 256 números possíveis com 1 byte:

    0 1 2 3 ... 127 128 129 ... 254 255 0000 0000 0000 0001 0000 0010 0000 0011 ... 0111 1111 1000 0000 1000 0001 ... 1111 1110 1111 1111
  49. Outros prefixos padronizados em computação são: • Kilo ........... 210

    = 1024 ≅ 103 = mil • Mega ........ 220 = 10242 ≅ 106 = milhão • Giga ........... 230 = 10243 ≅ 109 = bilhão • Tera .......... 240 = 10244 ≅ 1012 = trilhão • Peta ........... 250 = 10245 ≅ 1012 = quatrilhão • Hexa .......... 260 = 10246 ≅ 1015 = quintilhão
  50. Somos obrigados, eu e a Professora, a anunciar uma péssima

    notícia Nenhum computador digital tem capacidade para guardar o conjunto dos números naturais
  51. Motivo básico: o conjunto dos naturais é infinito mas todas

    as memórias dos computadores são constituídas por uma quantidade finita de bits. • RAM .................. 8, 24 GB • HDs ................... 1, 2 TB • CD ...................... 640 MB • DVD ................... 2.9, 4.7, 8.5 GB • Blu-Ray ............. 25 GB • Pendrives ......... 2,4,...,32 GB • Disquetes ......... 1.44 Mb
  52. O termo técnico é transbordamento (de memória). Em inglês overflow!

    Com 4.294.967.296 gotas o copo transbordará ! Que chute! Como ele sabe disso?
  53. Loirinha, é só porque o padrão longinteger permite representar 232

    = 4.294.967.296 números. Começando a contar de zero, o maior será 232 – 1. Mas Python NÃO tem essa limitação. Então você chutou na trave, Surfista !
  54. 0 -2 1 -1 2 Outro conjunto importante é o

    dos Inteiros, ℤ = { ..., -2, -1, 0, 1, 2, ... } O conjunto dos Inteiros é duplamente infinito ...
  55. Os elementos dos conjuntos enumeráveis podem ser imaginados como as

    gotas d’água d’uma torneira. Um número (gota) após o outro... Os Naturais e os Inteiros são conjuntos contáveis ou enumeráveis.
  56. Bem, esta é a forma usual em matemática: SINAL –

    MAGNITUDE. Entretanto esse NÃO é o padrão utilizado em computação. Professora, é óbvio que os Inteiros também deverão ser representados em binário no computador. E o sinal? É só colocar um – (ou um +) na frente número para indicar que ele é negativo (ou positivo)?
  57. O padrão adotado para representação de números em computação é

    o IEEE 754/2008. Para os Inteiros, o IEEE adota a complementação a 2, que utiliza a complementação a 1. Na base 10, eles correspondem o complemento a 10 e ao complemento a 9, respectivamente.
  58. O complemento a 9 de x é o que temos

    que acrescentar a x para chegar em 9. Fiz a tabela ao lado: x C9(x) 0 9 1 8 2 7 3 6 4 5 5 4 6 3 7 2 8 1 9 0 E na base 2 é só isto: x C1(x) 0 1 1 0
  59. 3.741 6.258 Exatamente Surfista, a complementação a 9 é feita

    dígito a dígito ! Mestra, então o complemento a 9 de 3.741 é 6.258 ? C9
  60. 8.307 1.692 +1 1.693 Aháá, então o complemento a 10

    de 8.307 é: O complemento a 10 de x é obtido somando 1 ao complemento a 9 de x. C9 C10
  61. Na base 2 é “mamão com açúcar”: Basta “virar bits”

    e somar 1. 1110 0101 x 0001 1010 C1(x) 0001 1011 C2(x)
  62. É a forma de transformar a subtração, que é a

    operação inversa da adição numa operação direta. Mostre a todos nós, Professor! Mas porque complicar tanto, Professora ?
  63. Por exemplo, para calcular 157 – 134 somamos 157 com

    o complemento a 10 de 134: 11 157 157 -134 865 866 + 23 1023 C9 C10
  64. Uma “pegadinha do Faustão”, Professora? É só por um 0

    na frente do 387 ! Calcule aí Surfista o resultado de 9.732 - 387 1 9.732 9.732 -0.387 9.612 9.613 + 9.345 19.345
  65. Sua vez Loirinha, mas agora na base 2. Quanto dá

    1101.1100 – 110.0101 ? Mestre, não sei fazer subtração na base 2, mas seguindo a ideia de complementação é fácil. Veja: 11 1101.1100 1101.1100 -0110.0101 1001.1011+ ??? 10111.0111 C2
  66. 11 111 0110.0101 + 0111.0111 1101.1100 Acertou Loirinha! Conferi com

    a “prova real”. E por quê você acha que a “prova real” vale na base 2, Surfista?
  67. 1 1.831 1.831 -5.474 4.526+ -3.643 6.357 C10 Surfista, agora

    sim uma “pegadinha do Faustão”! Calcule 1.831 – 5.474. Mestre, Mestre! Sua regra não funcionou desta vez! Assim fica difícil estudar!
  68. 1 1.831 1.831 -5.474 4.526 -3.643 6.357 6.357 3.642 +1

    -3.643 Comeu mosca Surfista ! Como o resultado é negativo, ele apareceu em complemento a 10. É só complementar de novo e colocar o sinal - ! Sempre muito rapidinho Surfista. Cuidado que assim você vai se reprovar!
  69. Já que aprendeu, então calcule: 101.1100 – 1011.0101 1 1

    101.1100 0101.1100 -1011.0101 0100.1011+ ??? 1010.0111 1010.0111 0101.1000 +1 -101.1001 Pô Loirinha, você arrebentou ! Aprendi a lição, Mestre.