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

Jak na mě vyskočila matematika

Jak na mě vyskočila matematika

Potřebuje programátor vysokoškolskou matematiku? Když jsem nastupoval do Jutu jako návrhář a implementátor programovacího jazyka, myslel jsem si, že ji využiji zhruba stejně jako ve své předchozí práci – vůbec. Rychle se ale ukázalo, že jsem se mýlil. Matematika na mě vyskočila hned na několika místech a já si rychle osvěžoval pojmy jako neutrální prvek, afinní prostor nebo dimenzionální analýza. V přednášce bych rád ukázal, kde všude jsem na matematiku při své práci nečekaně narazil a co všechno bych udělal špatně, kdybych jí nerozuměl.

Přednášku je možno chápat jako malý příspěvek do diskuze na témata „Potřebují programátoři vysokou školu?“ a „Kolik matematiky a další teorie by se na programátorských VŠ mělo učit?“

Předneseno na pražském Ruby srazu.

Detaily:
http://srazy.info/prvni-streda-ruby-on-rails/5420
https://www.facebook.com/events/1618055091803470/

David Majda

May 06, 2015
Tweet

More Decks by David Majda

Other Decks in Programming

Transcript

  1. Jak na mě vyskočila MATEMATIKA David Majda Praha, 6.5.2015

  2. INTRO

  3. None
  4. None
  5. None
  6. { time: "2015-05-03T09:29:15.000Z" space: "default", source_type: "metric", name: "response_time", value:

    134.675 }
  7. read … | ( batch :5 seconds: | reduce max('value')

    by host | @timechart; keep time, value | @logger )
  8. read … | ( batch :5 seconds: | reduce max('value')

    by host | @timechart; keep time, value | @logger ) read @timechart batch reduce keep @logger
  9. DEMO

  10. LOGIKA ALGEBRA I ALGEBRA II ALGEBRA III ANALÝZA TEORIE RELATIVITY

  11. LOGIKA

  12. read status = 500

  13. read status = 500 or (status = 404 and url

    !~ …)
  14. read status = 500 or (status = 404 and url

    !~ …)
  15. Konjunktivní normální forma

  16. (a 1,1 ∨ … ∨ a 1,m(1) ) ∧ …

    ∧ (a n,1 ∨ … ∨ a n,m(n) )
  17. read status = 500 or (status = 404 and url

    !~ …)
  18. read (status = 500 or status = 404) and (status

    = 500 or url !~ …)
  19. read (status = 500 or status = 404) and (status

    = 500 or url !~ …)
  20. ALGEBRA I

  21. read … | reduce c = count(x) s = sum(x)

    m = max(x)
  22. { c: 3, s: 6, m: 3 } read …

    | reduce c = count(x) s = sum(x) m = max(x) { x: 1 } { x: 2 } { x: 3 }
  23. { c: 2, s: 3, m: 2 } read …

    | reduce c = count(x) s = sum(x) m = max(x) { x: 1 } { x: 2 }
  24. { c: 1, s: 1, m: 1 } read …

    | reduce c = count(x) s = sum(x) m = max(x) { x: 1 }
  25. { c: ?, s: ?, m: ? } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nic)
  26. { c: 0, s: ?, m: ? } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nic)
  27. { c: 0, s: ?, m: ? } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nic)
  28. { c: 0, s: 0, m: ? } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nic)
  29. { c: 0, s: 0, m: ? } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nic)
  30. { c: 0, s: 0, m: undefined } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nic)
  31. { c: 0, s: 0, m: undefined } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nic)
  32. Neutrální prvek

  33. e: ∀a(e ⊕ a = a ⊕ e = a)

  34. None
  35. None
  36. None
  37. { c: 0, s: 0, m: -Infinity } read …

    | reduce c = count(x) s = sum(x) m = max(x) (nic)
  38. ALGEBRA II

  39. read … value > 0.95 | reduce c = count()

  40. Elasticsearch Cassandra read … value > 0.95 | reduce c

    = count()
  41. Elasticsearch Cassandra read … value > 0.95 | reduce c

    = count()
  42. Asociativita

  43. (a ⊕ b) ⊕ c = a ⊕ (b ⊕

    c)
  44. count count_unique sum avg min max first last pluck percentile

    sigma
  45. count count_unique sum avg min max first last pluck percentile

    sigma
  46. None
  47. None
  48. Monoid

  49. Množina S, operace ⊕ : S ⨉ S → S

    ⊕ je asociativní na prvcích S V S existuje neutrální prvek vůči ⊕
  50. ALGEBRA III

  51. read time < :2015-04-01:

  52. Moment Duration :2015-04-01T20:05:27.034: :now: :3 weeks and 1 day ago:

    :20:05:27.034: :3s: :1 hour and 23 minutes:
  53. read time < :2015-04-01: - :1 day:

  54. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  55. Afinní prostor

  56. None
  57. None
  58. None
  59. None
  60. None
  61. m 1 m 2 m 2 t d 1 d

    2
  62. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  63. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  64. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  65. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  66. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  67. Dimenzionální analýza

  68. v = s / t η = P výst /

    P vst
  69. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  70. N * D → D D * N → D

    N / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  71. N * D → D D * N → D

    D / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  72. None
  73. N * D → D D * N → D

    D / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  74. N * D → D D * N → D

    D / D → N D / N → D D % N → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  75. N * D → D D * N → D

    D / D → N D / N → D D % D → D M + D → M D + M → M D + D → D M - M → D M - D → M D - D → D
  76. None
  77. None
  78. ANALÝZA

  79. emit -from 0 | batch 2 | reduce count() |

    batch 4 | reduce count()
  80. emit … | batch 2 | reduce count() | batch

    4 | reduce count() { time: 0 } { time: 1 } { time: 2 } { time: 3 } { time: 4 } { time: 5 } { time: 6 } { time: 7 } { time: 8 } { time: 2, count: 2 } { time: 4, count: 2 } { time: 6, count: 2 } { time: 8, count: 2 } { time: 4, count: 2 } { time: 8, count: 2 }
  81. emit … | batch 2 | reduce count() | batch

    4 | reduce count() { time: 0 } { time: 1 } { time: 2 } { time: 3 } { time: 4 } { time: 5 } { time: 6 } { time: 7 } { time: 8 } { time: 2, count: 2 } { time: 4, count: 2 } { time: 6, count: 2 } { time: 8, count: 2 } { time: 4, count: 2 } { time: 8, count: 2 } < 2 < 2 < 2 < 2 ≤ 4 ≤ 4
  82. Infinitezimály

  83. ε > 0 ∀x ∈ R, x > 0: ε

    < x
  84. emit … | batch 2 | reduce count() | batch

    4 | reduce count() { time: 0 } { time: 1 } { time: 2 } { time: 3 } { time: 4 } { time: 5 } { time: 6 } { time: 7 } { time: 8 } { time: 2, count: 2 } { time: 4, count: 2 } { time: 6, count: 2 } { time: 8, count: 2 } { time: 4, count: 2 } { time: 8, count: 2 } < 2 < 2 < 2 < 2 ≤ 4 ≤ 4
  85. emit … | batch 2 | reduce count() | batch

    4 | reduce count() { time: 0 } { time: 1 } { time: 2 } { time: 3 } { time: 4 } { time: 5 } { time: 6 } { time: 7 } { time: 8 } { time: 2 - ε, count: 2 } { time: 4 - ε, count: 2 } { time: 6 - ε, count: 2 } { time: 8 - ε, count: 2 } { time: 4 - ε, count: 2 } { time: 8 - ε, count: 2 } < 2 < 2 < 2 < 2 < 4 < 4
  86. TEORIE RELATIVITY

  87. None
  88. Minkowského metrika

  89. ds2 = c2dt2 - dx2 - dy2 - dz2

  90. ds2 = c2dt2 - dx2 - dy2 - dz2

  91. None
  92. None
  93. ZÁVĚR

  94. OTÁZKY?

  95. KAM DÁL? http://en.wikipedia.org/wiki/Conjunctive_normal_form http://en.wikipedia.org/wiki/Disjunctive_normal_form http://en.wikipedia.org/wiki/Identity_element http://en.wikipedia.org/wiki/Associative_property http://en.wikipedia.org/wiki/Monoid http://en.wikipedia.org/wiki/Affine_space http://en.wikipedia.org/wiki/Dimensional_analysis http://en.wikipedia.org/wiki/Infinitesimal

    http://en.wikipedia.org/wiki/Minkowski_space
  96. POUŽITÉ OBRÁZKY http://commons.wikimedia.org/wiki/File:Torus.png http://commons.wikimedia.org/wiki/File:World_line.svg