Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
高専カンファレンス新春 in 大阪
Search
Hiroki Nomura
January 12, 2019
Programming
0
810
高専カンファレンス新春 in 大阪
『2019-01-12 高専カンファレンス新春 in 大阪』で発表した資料です。
Hiroki Nomura
January 12, 2019
Tweet
Share
More Decks by Hiroki Nomura
See All by Hiroki Nomura
blockchain.pdf
nomunomu0504
0
110
Other Decks in Programming
See All in Programming
たのしいparse.y
ydah
3
120
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
300
tidymodelsによるtidyな生存時間解析 / Japan.R2024
dropout009
1
730
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
610
Jakarta EE meets AI
ivargrimstad
0
230
これが俺の”自分戦略” プロセスを楽しんでいこう! - Developers CAREER Boost 2024
niftycorp
PRO
0
190
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.9k
N.E.X.T LEVEL
pluu
2
300
103 Early Hints
sugi_0000
1
220
14 Years of iOS: Lessons and Key Points
seyfoyun
1
770
コンテナをたくさん詰め込んだシステムとランタイムの変化
makihiro
1
120
Semantic Kernelのネイティブプラグインで知識拡張をしてみる
tomokusaba
0
180
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Fireside Chat
paigeccino
34
3.1k
Agile that works and the tools we love
rasmusluckow
328
21k
A Modern Web Designer's Workflow
chriscoyier
693
190k
The Language of Interfaces
destraynor
154
24k
Become a Pro
speakerdeck
PRO
26
5k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Designing for humans not robots
tammielis
250
25k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Scaling GitHub
holman
458
140k
Transcript
৽य़ɾߴઐΧϯϑΝ in େࡕ 2019/01/12 kosenconf-123shinshun ͷΉͷΉʢ@nomunomu0504ʣ
ڈʹҾ͖ଓ͖… • ڈͷ৽य़ΧϯϑΝʹࢀՃͯ͠·ͨ͠ • @John_bardera ͔Β࣮ߦҕһΛ͍·ͨ͠ ʢϞϯΤφϑϧηοτʣ
πΠʔτ͢Δͱ͖ʹ… #ͷΉͷΉ
ࠓͷൃද༰ • ྔࢠίϯϐϡʔλʹ͍ͭͯ - ྔࢠίϯϐϡʔλͱݹయతίϯϐϡʔλͱͷҧ͍ - ͲͷΑ͏ʹԋࢉΛߦͳ͍ͬͯΔͷ͔
ࠓͷൃද༰ ྔࢠίϯϐϡʔλΛઐͱ͞Ε͍ͯΔํ • ྔࢠίϯϐϡʔλʹ͍ͭͯ - ྔࢠίϯϐϡʔλͱݹయతίϯϐϡʔλͱͷҧ͍ - ͲͷΑ͏ʹԋࢉΛߦͳ͍ͬͯΔͷ͔
ࠓͷൃද༰ ྔࢠɾྔࢠྗֶઐ߈ͷํ • ྔࢠίϯϐϡʔλʹ͍ͭͯ - ྔࢠίϯϐϡʔλͱݹయతίϯϐϡʔλͱͷҧ͍ - ͲͷΑ͏ʹԋࢉΛߦͳ͍ͬͯΔͷ͔ ྔࢠίϯϐϡʔλΛઐͱ͞Ε͍ͯΔํ
ࠓͷൃද༰ • ྔࢠίϯϐϡʔλʹ͍ͭͯ - ྔࢠίϯϐϡʔλͱݹయతίϯϐϡʔλͱͷҧ͍ - ͲͷΑ͏ʹԋࢉΛߦͳ͍ͬͯΔͷ͔ ྔࢠɾྔࢠྗֶઐ߈ͷํ ྔࢠίϯϐϡʔλΛઐͱ͞Ε͍ͯΔํ झຯൣғͰֶश͍ͯ͠Δ༰Ͱ͢
ʢߨٛҰऔ͍ͬͯ·ͤΜɻऔΓͨͯ͘ߴઐʹ͋Γ·ͤΜʣ ؒҧ͍͕͋Γ·ͨ͠Β%.ૹ͍͚ͬͯͨͩΔͱ ϓϨθϯλʔتͼ·͢
ྔࢠίϯϐϡʔλͱ • ྔࢠྗֶͷੑ࣭ΛͬͯߴʹܭࢉͰ͖Δίϯϐϡʔλ • ͋ΔఔͷαΠζͷྔࢠίϯϐϡʔλ͕͋Ε ʹΑͬͯεύίϯΑΓߴʹܭࢉͰ͖Δ • ྔࢠίϯϐϡʔλͷ࣮ݱํ๏̎छྨ͋Δ • ྔࢠήʔτํࣜ
• ྔࢠΞχʔϦϯάํࣜ > ࠓճઆ໌͢Δͷʰྔࢠήʔτํࣜʱ
ྔࢠίϯϐϡʔλͰߴܭࢉͰ͖Δ͜ͱ 1. ܥ • Ҽղ • ࢄର • ϕϧํఔࣜ •
Ψε • ߹ಉθʔλؔ 2. زԿܥ • ݁ͼෆมྔ • Persistent Homology 3. ઢܗܥ • ߦྻͷྦྷ • ߦྻͷ֊ ͳͲ
1. ܥ • Ҽղ • ࢄର • ϕϧํఔࣜ • Ψε
• ߹ಉθʔλؔ ޙͰ࣮ࡍʹ ಋग़ͬͯΈ·͢ʂ ྔࢠίϯϐϡʔλͰߴܭࢉͰ͖Δ͜ͱ 2. زԿܥ • ݁ͼෆมྔ • Persistent Homology 3. ઢܗܥ • ߦྻͷྦྷ • ߦྻͷ֊ ͳͲ
Ͳͷ͙Β͍ૣ͘ܭࢉͰ͖Δͷ͔ • nϏοτͷҼղ • ݹయతίϯϐϡʔλ(Ұൠମ;Δ͍๏) (e1.9(ln n) 1 3(ln ln
n) 2 3) • ྔࢠίϯϐϡʔλ(ShorΞϧΰϦζϜ) ((log n)2(log log n)(log log log n)) • 1024ϏοτͷҼղʹ͔͔Δܭࢉྔ • ݹయతίϯϐϡʔλɿ • ྔࢠίϯϐϡʔλɹɿ (10278) (1061)
• 1024ϏοτͷҼղʹ͔͔Δܭࢉྔ • ݹయతίϯϐϡʔλɿ • ྔࢠίϯϐϡʔλɹɿ Ͳͷ͙Β͍ૣ͘ܭࢉͰ͖Δͷ͔ • nϏοτͷҼղ •
ݹయతίϯϐϡʔλ(Ұൠମ;Δ͍๏) (e1.9(ln n) 1 3(ln ln n) 2 3) • ྔࢠίϯϐϡʔλ(ShorΞϧΰϦζϜ) ((log n)2(log log n)(log log log n)) (10278) (1061)
ͲͷΑ͏ͳܭࢉΛ͍ͯ͠Δͷ͔ • ݹయతίϯϐϡʔλͳΒɺ͋Δॲཧܥ͓͍ͯ ೖྗ͕ಉ͡ͳΒৗʹಉ݁͡Ռ͕ಘΒΕΔɻ • ྔࢠίϯϐϡʔλͰɺ͋Δԋࢉࢠܥʹ͓͍ͯ ೖྗ͕ಉ͡Ͱʰԋࢉ݁ՌʱҟͳΔՄೳੑ͕͋Δɻ ྔࢠίϯϐϡʔλܭࢉͷਖ਼֬͞ʢ֬ʣΛग़ྗ͢Δ
֤ίϯϐϡʔλͷ جૅԋࢉʹ͍ͭͯ
ݹయతίϯϐϡʔλͷجૅ • Β͕͍ͭར༻͍ͯ͠ΔίϯϐϡʔλΛ ʮݹయతίϯϐϡʔλʯͱݺͿ • ݹయతίϯϐϡʔλͷܭࢉ୯Ґʮbitʯ 0 ͔ 1 ͷͲͪΒ͔ͷঢ়ଶΛऔΓ͏Δɻ2ਐͰද͢
• bitͷঢ়ଶిѹͷ on/off Ͱอ࣋͞Ε͍ͯΔɻ
ݹయతίϯϐϡʔλͷԋࢉ • ཧήʔτʢAND, OR, NOTʣͰԋࢉճ࿏ΛΉ • AND, NOTήʔτͷ2छྨ (͘͠NANDήʔτͳΒ1छྨ) ͕͋Ε
ҙͷཧճ࿏Λ࣮ݱͰ͖Δ
ྔࢠίϯϐϡʔλͷجૅ • ྔࢠྗֶతͳঢ়ଶͷॏͶ߹ΘͤͰฒྻੑΛ࣮ݱ͢Δ • ܭࢉ୯ҐʮQubit (Quantum bit) ʯ ˠ 0
͔ 1 ʹͳΔʮ֬Λอ࣋ʯͯ͠ԋࢉΛߦ͏ • ྔࢠϏοτʮϒϥɾέοτه๏ʯͰදݱ͞ΕΔ جຊతʹྔࢠྗֶʮγϡϨσΟϯΨʔܗࣜʢඍੵʣʯ͕ͩίϯϐϡʔλͰ ѻ͏ͨΊʮσΟϥοΫܗࣜʢߦྻʣʯΛ༻͍Δ ԋࢉͰʮςϯιϧੵʯΛଟ༻͢Δ
ྔࢠίϯϐϡʔλͷԋࢉʢςϯιϧੵʣ • ߦྻੵ ( 0 0 0 1) ⋅ (
1 0 0 1) = ( 0 0 0 1) ֤ߦྻͷཁૉಉ࢜ͷԋࢉʢੵɾʣ ͦΕͧΕͷߦྻͷαΠζ n×m, m×p Ͱͳ͚ΕͳΒͳ͍ ԋࢉޙͷߦྻͷαΠζ n×p ͱͳΔ
• ςϯιϧੵ ཁૉͱߦྻͷԋࢉ ͦΕͧΕͷߦྻͷαΠζΛ n×m, p×q ͱ͢Ε ԋࢉޙͷߦྻαΠζnp × mq
ͱͳΔ ςϯιϧੵߦྻͷ֦ு ( 0 0 0 1) ⊗ ( 1 0 0 1) = 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 ྔࢠίϯϐϡʔλͷԋࢉʢςϯιϧੵʣ
ཁૉͱߦྻͷԋࢉ ͦΕͧΕͷߦྻͷαΠζΛ n×m, p×q ͱ͢Ε ԋࢉޙͷߦྻαΠζnp × mq ͱͳΔ ςϯιϧੵߦྻͷ֦ு
ྔࢠίϯϐϡʔλͷԋࢉʢςϯιϧੵʣ • ςϯιϧੵ ( 0 0 0 1) ⊗ ( 1 0 0 1) = 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 ⋅ ( 1 0 0 1) 0 ⋅ ( 1 0 0 1) 1 ⋅ ( 1 0 0 1) 0 ⋅ ( 1 0 0 1)
ྔࢠίϯϐϡʔλͷԋࢉʢϒϥɾέοτه๏ʣ • ϒϥɾέοτه๏ α, β Λෳૉͱ͢Ε |⟩ ɿϒϥ ⟨| |A⟩
= ( α β) ⟨A| = (α* β*) ɹɹɿɹͷෳૉڞ X* X γ, δ Λෳૉͱ͢Ε |B⟩ = ( γ δ) ⟨B| = (γ* δ*) ɿέοτ
ྔࢠίϯϐϡʔλͷԋࢉʢϒϥɾέοτه๏ͷܭࢉྫʣ |A⟩ = ( α β) ⟨A| = (α* β*)
⟨B| = (γ* δ*) |B⟩ = ( γ δ)
ྔࢠίϯϐϡʔλͷԋࢉʢϒϥɾέοτه๏ͷܭࢉྫʣ ⟨A|B⟩ = (α* β*) ( γ δ) = α*γ
+ β*δ ← ߦྻA, Bͷੵ |A⟩ = ( α β) ⟨A| = (α* β*) ⟨B| = (γ* δ*) |B⟩ = ( γ δ)
ྔࢠίϯϐϡʔλͷԋࢉʢϒϥɾέοτه๏ͷܭࢉྫʣ |A⟩ ⊗ |B⟩ = ( α β) ⊗ (
γ δ) = αγ αδ βγ βδ |A⟩ ⊗ ⟨B| = ( α β) ⊗ (γ* δ*) = ( αγ* αδ* βγ* βδ*) ⟨A|B⟩ = (α* β*) ( γ δ) = α*γ + β*δ ← ߦྻA, Bͷੵ |A⟩ = ( α β) ⟨A| = (α* β*) ⟨B| = (γ* δ*) |B⟩ = ( γ δ)
ྔࢠίϯϐϡʔλͷԋࢉʢϒϥɾέοτه๏ͷܭࢉྫʣ |A⟩ ⊗ |B⟩ = ( α β) ⊗ (
γ δ) = αγ αδ βγ βδ |A⟩ ⊗ ⟨B| = ( α β) ⊗ (γ* δ*) = ( αγ* αδ* βγ* βδ*) ⟨A|B⟩ = (α* β*) ( γ δ) = α*γ + β*δ ← ߦྻA, Bͷੵ |A⟩ = ( α β) ⟨A| = (α* β*) ⟨B| = (γ* δ*) |B⟩ = ( γ δ) ߦྻA, Bͷςϯιϧੵ ˠ ԋࢉࢠʢߦྻʣ
ྔࢠίϯϐϡʔλͷԋࢉʢϒϥɾέοτه๏ͷܭࢉྫʣ |B⟩ ⟨B| ͷ Τϧϛʔτڞͱ͍͏ ߦྻA, Bͷςϯιϧੵ ˠ ԋࢉࢠʢߦྻʣ
|A⟩ ⊗ |B⟩ = ( α β) ⊗ ( γ δ) = αγ αδ βγ βδ |A⟩ ⊗ ⟨B| = ( α β) ⊗ (γ* δ*) = ( αγ* αδ* βγ* βδ*) ⟨A|B⟩ = (α* β*) ( γ δ) = α*γ + β*δ ← ߦྻA, Bͷੵ |A⟩ = ( α β) ⟨A| = (α* β*) ⟨B| = (γ* δ*) |B⟩ = ( γ δ)
• ςϯιϧੵͷলུ ෳͷςϯιϧੵͰද͞Ε͍ͯΔϕΫτϧ·ͱΊΔ͜ͱ͕Ͱ͖Δɻ έοτɺϒϥಉ࢜লུͰ͖Δ͕ɺࠞࡏ͍ͯ͠Δͱ͖ҙ͕ඞཁ ྔࢠίϯϐϡʔλͷԋࢉʢςϯιϧੵʣ |0⟩ ⊗ |1⟩ ⊗ |1⟩
⊗ |0⟩ ⊗ |1⟩ = |0⟩|1⟩|1⟩|0⟩|1⟩ = |01101⟩ (⟨A| ⊗ ⟨B|) (|X⟩ ⊗ |Z⟩) = ⟨A|X⟩⟨B|Z⟩ ߹ʹΑͬͯςϯιϧੵΛؚΜͰͯܭࢉ݁ՌੵʹͳΔͱ͔ 1 1 2 2 1 1 2 2
• ԋࢉࢠUΛఆٛ͢Δ ྔࢠίϯϐϡʔλͷԋࢉʢΤϧϛʔτڞʣ → సஔͷෳૉڞ U = ( α β)
ԋࢉࢠUͷసஔ tU = (α β) ԋࢉࢠUͷసஔͷෳૉڞ tU* = (α* β*) ຖճɹ Λॻ͘ͷ໘ → লུه߸͋Γ·͢ tU* U† = tU* ɿUͷΤϧϛʔτڞ( ɿ μΨʔ ) U† †
• nྔࢠϏοτͷঢ়ଶɹɹ͕͋Δͱ͖ ྔࢠίϯϐϡʔλͷԋࢉʢྔࢠࢄతϑʔϦΤมʣ |j⟩ |j⟩ = 1 2n 2n−1 ∑
k=0 ei 2πkj 2n |k⟩ |j⟩ = 1 2n 2n−1 ∑ k=0 e−i 2πkj 2n |k⟩ • ٯྔࢠࢄతϑʔϦΤม
• nྔࢠϏοτͷঢ়ଶɹɹ͕͋Δͱ͖ |j⟩ |j⟩ = 1 2n 2n−1 ∑ k=0
ei 2πkj 2n |k⟩ |j⟩ = 1 2n 2n−1 ∑ k=0 e−i 2πkj 2n |k⟩ • ٯྔࢠࢄతϑʔϦΤม ྔࢠίϯϐϡʔλͷԋࢉʢྔࢠࢄతϑʔϦΤมʣ
• nྔࢠϏοτͷঢ়ଶɹɹ͕͋Δͱ͖ |j⟩ |j⟩ = 1 2n 2n−1 ∑ k=0
ei 2πkj 2n |k⟩ |j⟩ = 1 2n 2n−1 ∑ k=0 e−i 2πkj 2n |k⟩ • ٯྔࢠࢄతϑʔϦΤม ྔࢠίϯϐϡʔλͷԋࢉʢྔࢠࢄతϑʔϦΤมʣ ʂपظղੳʹ༻͍Δʂ
ྔࢠͷੑ࣭ʹ͍ͭͯ
• ࢄੑ • ෆ֬ఆੑ − ෆ֬ఆੑݪཧ( ϋΠθϯϕϧάͷݪཧ ) • ೋॏੑ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͷੑ࣭ʳ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͷੑ࣭ʳ • ࢄੑ ྔࢠ࿈ଓతͳΤωϧΪʔͰͳ͘ࢄతͳΤωϧΪʔΛ࣋ͭ ϚΫϩʢڊࢹతʣͰ࿈ଓతͰ͋Δ͕ɺϛΫϩʢඍࢹతʣͰಛఆͷ߹ʹࢄ తͳΤωϧΪʔ४Ґ͔࣋ͯ͠ͳ͘ͳΔ • ཻࢠ̍ݸ͕࣋ͭΤωϧΪʔ ℏω (
∵ ℏ = h 2π ) hɿϓϥϯΫఆ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͷੑ࣭ʳ • ෆ֬ఆੑ − ෆ֬ఆੑݪཧʢϋΠθϯϕϧάͷݪཧʣ Δx ⋅ Δpx ≥ ℏ
2 ΔxɿҐஔͷෆ֬ఆੑ Δpx ɿӡಈྔͷෆ֬ఆੑ ిࢠͷӡಈྔʢʣͱҐஔΛಉ࣌ʹਖ਼֬ʹΔ͜ͱͰ͖ͳ͍ ɾӡಈྔ͕͔Εʢɹɹ = 0 ʣɺҐஔ͕ෆ໌ʢɹɹ= ∞ ʣ ɾҐஔ͕͔Εʢɹɹ = 0 ʣɺӡಈྔ͕ෆ໌ʢɹɹ = ∞ ʣ Δpx Δx Δx Δpx υΠπͷཧֶऀ ϋΠθϯϕϧάʹΑͬͯఏҊ͞Εͨ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͷੑ࣭ʳ • ೋॏੑ − ೋॏεϦοτͷ࣮ݧ • ཻࢠͳΒεϦοτΛ௨ͬͯ ਅ͙ͬεΫϦʔϯʹͿ͔ͭΔ ͞Βཻࢠ̍ͭ̍ͭͷ͕Δ •
ͳΒεϦοτΛ௨ΔͷͰ ׯবࣶ͕εΫϦʔϯʹͰ͖Δ
ྔࢠίϯϐϡʔλͷجૅʲೋॏੑʳ • ిࢠΛೋॏεϦοτʹ௨͢ͱʁ ཻࢠͷੑ࣭͕εΫϦʔϯʹΈΒΕΔʢཻࢠͷʣ ͷੑ࣭͕εΫϦʔϯʹΈΒΕΔʢׯবࣶʣ ͲͪΒͩͱࢥ͍·͔͢ʁ
ྔࢠίϯϐϡʔλͷجૅʲೋॏੑʳ • ిࢠΛೋॏεϦοτʹ௨͢ͱʁ • ʮཻࢠͷੑ࣭ʹݟΒΕΔిࢠͷিಥͷʯ ʮͷੑ࣭ʹݟΒΕΔׯবࣶʯͷ྆ํ͕εΫϦʔϯʹΈΒΕΔ ͭ·Γʮిࢠʯ ˠʮʯͷΑ͏ʹׯব͠߹͍ ʮཻࢠʯͷΑ͏ʹεΫϦʔϯʹিಥͨ͠ͱ͍͏͜ͱʹͳΔ ʮʯͱʮཻࢠʯͷೋॏੑ
ྔࢠίϯϐϡʔλͷجૅʲೋॏੑʳ • ిࢠΛೋॏεϦοτͷલͰ؍ଌͨ͠Βʁ ʮʯͷੑ࣭͚ͩΛ͍࣋ͬͯΔͷ͔ ʮཻࢠʯͷੑ࣭͚ͩΛ͍࣋ͬͯΔͷ͔ ిࢠׂ͕͞Ε͍ͯΔͷͰͳ͍͔
ྔࢠίϯϐϡʔλͷجૅʲೋॏੑʳ • ిࢠΛೋॏεϦοτͷલͰ؍ଌͨ͠Βʁ • ʮ؍ଌʯͱ͍͏ߦҝΛߦ͏ͱʮཻࢠʯͷੑ࣭͔͠ΈΒΕͳ͔ͬͨ ˠʮ؍ଌʯΛߦ͏ͱঢ়ଶ่͕Εͯ͠·͏ ޙड़ɿʮྔࢠॏͶ߹Θͤͷঢ়ଶʯʹؔ࿈͍ͯ͠Δ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠঢ়ଶʹ͍ͭͯʳ • ྔࢠॏͶ߹Θͤঢ়ଶ • ྔࢠׯবޮՌ • ྔࢠͭΕঢ়ଶʢΤϯλϯάϧϝϯτʣ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠॏͶ߹Θͤঢ়ଶʳ • ྔࢠॏͶ߹Θͤঢ়ଶ ࢄతͳঢ়ଶ͕ࠞ͟Γ߹ͬͨঢ়ଶɻ ؍ଌʹΑͬͯͲͪΒ͔ͷঢ়ଶʹऩॖ͠ɺॏͶ߹Θͤঢ়ଶ่͕ΕΔ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠॏͶ߹Θͤঢ়ଶʳ • ྔࢠॏͶ߹Θͤঢ়ଶ ࢄతͳঢ়ଶ͕ࠞ͟Γ߹ͬͨঢ়ଶɻ ؍ଌʹΑͬͯͲͪΒ͔ͷঢ়ଶʹऩॖ͠ɺॏͶ߹Θͤঢ়ଶ่͕ΕΔ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠॏͶ߹Θͤঢ়ଶʳ |α|2 % |β|2 % |0⟩ |1⟩ α|0⟩ + β|1⟩
• ྔࢠॏͶ߹Θͤঢ়ଶ ࢄతͳঢ়ଶ͕ࠞ͟Γ߹ͬͨঢ়ଶɻ ؍ଌʹΑͬͯͲͪΒ͔ͷঢ়ଶʹऩॖ͠ɺॏͶ߹Θͤঢ়ଶ่͕ΕΔ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠॏͶ߹Θͤঢ়ଶʳ ϧϏϯͷᆵ • ྔࢠॏͶ߹Θͤঢ়ଶ ࢄతͳঢ়ଶ͕ࠞ͟Γ߹ͬͨঢ়ଶɻ ؍ଌʹΑͬͯͲͪΒ͔ͷঢ়ଶʹऩॖ͠ɺॏͶ߹Θͤঢ়ଶ่͕ΕΔ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠׯবޮՌʳ • ྔࢠׯবޮՌ ৭ʑͳঢ়ଶ͕ڧΊ߹ͬͨΓऑΊ߹ͬͨΓ͢Δ͜ͱ ͷׯবͱࣅͨΑ͏ͳݱ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͭΕঢ়ଶʳ • ྔࢠͭΕঢ়ଶʢΤϯλϯάϧϝϯτʣ ৭ʑͳঢ়ଶؒͰ૬ޓ͕ؔ͋ΓͰ͖ͳ͍ ˠ ʰγϡϨσΟϯΨʔͷೣͷύϥυοΫεʱ͕༗໊ |0⟩ |1⟩ ෳ߹ܥͷঢ়ଶΛςϯιϧੵΛ ༻͍ͯද͢͜ͱ͕Ͱ͖ͳ͍࣌
ྔࢠͭΕঢ়ଶͱ͍͏ |0⟩ ⊗ |1⟩ ≠ |0⟩ + |1⟩
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͭΕঢ়ଶʳ • ྔࢠͭΕঢ়ଶʢΤϯλϯάϧϝϯτʣ ৭ʑͳঢ়ଶؒͰ૬ޓ͕ؔ͋ΓͰ͖ͳ͍ ˠ ʰγϡϨσΟϯΨʔͷೣͷύϥυοΫεʱ͕༗໊ |0⟩ |1⟩ |0⟩ ⊗
|1⟩ ≠ |0⟩ + |1⟩ ͲΏ͜ͱʁ ෳ߹ܥͷঢ়ଶΛςϯιϧੵΛ ༻͍ͯද͢͜ͱ͕Ͱ͖ͳ͍࣌ ྔࢠͭΕঢ়ଶͱ͍͏
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͭΕঢ়ଶʳ • Τϯλϯάϧϝϯτঢ়ଶͱඇΤϯλϯάϧϝϯτঢ়ଶ ࣍ͷ̎ͭͷঢ়ଶA, Bʢ ɹɹɹɹ ɹʣΛߟ͑Δ |ψA ⟩, |ψB
⟩ |ψA ⟩ = 1 2 (|00⟩ + |01⟩) |ψB ⟩ = 1 2 (|00⟩ + |11⟩)
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͭΕঢ়ଶʳ → ঢ়ଶAςϯιϧੵͰද͢͜ͱ͕Ͱ͖Δ͕ঢ়ଶBͰ͖ͳ͍ • Τϯλϯάϧϝϯτঢ়ଶͱඇΤϯλϯάϧϝϯτঢ়ଶ ࣍ͷ̎ͭͷঢ়ଶA, Bʢ ɹɹɹɹ ɹʣΛߟ͑Δ |ψA
⟩, |ψB ⟩ |ψA ⟩ = 1 2 (|00⟩ + |01⟩) |ψB ⟩ = 1 2 (|00⟩ + |11⟩)
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͭΕঢ়ଶʳ |ψA ⟩ = |0⟩ ⊗ 1 2 (|0⟩ +
|1⟩) • Τϯλϯάϧϝϯτঢ়ଶͱඇΤϯλϯάϧϝϯτঢ়ଶ → ঢ়ଶAςϯιϧੵͰද͢͜ͱ͕Ͱ͖Δ͕ঢ়ଶBͰ͖ͳ͍ ࣍ͷ̎ͭͷঢ়ଶA, Bʢ ɹɹɹɹ ɹʣΛߟ͑Δ |ψA ⟩, |ψB ⟩ |ψA ⟩ = 1 2 (|00⟩ + |01⟩) |ψB ⟩ = 1 2 (|00⟩ + |11⟩)
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͭΕঢ়ଶʳ ঢ়ଶAɿඇΤϯλϯάϧϝϯτঢ়ଶʢͭΕঢ়ଶʹͳ͍ʣ ঢ়ଶBɿɹΤϯλϯάϧϝϯτঢ়ଶʢͭΕঢ়ଶʹ͋Δʣ • Τϯλϯάϧϝϯτঢ়ଶͱඇΤϯλϯάϧϝϯτঢ়ଶ |ψA ⟩ = |0⟩ ⊗
1 2 (|0⟩ + |1⟩) → ঢ়ଶAςϯιϧੵͰද͢͜ͱ͕Ͱ͖Δ͕ঢ়ଶBͰ͖ͳ͍ ࣍ͷ̎ͭͷঢ়ଶA, Bʢ ɹɹɹɹ ɹʣΛߟ͑Δ |ψA ⟩, |ψB ⟩ |ψA ⟩ = 1 2 (|00⟩ + |01⟩) |ψB ⟩ = 1 2 (|00⟩ + |11⟩)
͔͜͜Βຊ൪ ౖ౭ͷֶ & ྔࢠྗֶ
࣌ؒͷ߹্ ༷ʑͳ݅ͷղઆলུ͠·͢ ✨ ϒϩάͰߦؒຒΊ͠·͢ ✨
1. ܥ • Ҽղ • ࢄର • ϕϧํఔࣜ • Ψε
• ߹ಉθʔλؔ ͜ΕΓ·͢ ྔࢠίϯϐϡʔλͰߴܭࢉͰ͖Δ͜ͱ 2. زԿܥ • ݁ͼෆมྔ • Persistent Homology 3. ઢܗܥ • ߦྻͷྦྷ • ߦྻͷ֊ ͳͲ
• ֬తΞϧΰϦζϜʢෳճ࣮ߦ͢Εɺߴ֬ͰͨΔʣ 1. NΛҼղ͢Δͱ͖ɺࣗવ p < N ΛϥϯμϜʹܾΊΔ 2. gcd(p,
N)Λܭࢉ͢Δ → ݁Ռ͕ > 1 ͳΒɺඇࣗ໌ͳNͷҼ 3. ɹɹɹɹɹɹɹɹɹͷपظTΛݟ͚ͭΔʢྔࢠΞϧΰϦζϜʣ 1. T͕حͳΒɺ1.͔ΒΓ͢ 2. ɹɹɹɹɹɹɹɹɹ ͳΒɺ1.͔ΒΓ͢ 4. ɹɹɹɹɹɹɹ͕ඇࣗ໌ͳNͷҼ → ShorͷΞϧΰϦζϜʹΑΔҼղ fN (x) = px mod N pT 2 + 1 ≡ 0 mod N gcd(pT 2 ± 1,N) pT ≡ 1 mod N ⇔ (pT 2 + 1)(pT 2 − 1) ≡ 0 mod N ≠ 0 ≠ 0 p, Nͷ࠷େެ ҐൃݟΞϧΰϦζϜ ɾҐਪఆ ɾҐൃݟ ɾؔपظൃݟ ݁Ռ͕ͳΒ ʰޓ͍ʹૉʱͰ͋Δ
• N = 57ͱ͢Δɻp = 5ͩͬͨͱ͖ 1. ɹɹɹɹɹɹɹͱͳΔΑ͏ͳɹɹɹɹΛબͿ ɹɹɹɹɹɹɹɹ ΑΓ
2. ྔࢠϏοτΛ࡞͢Δɿ 3. ྔࢠϑʔϦΤมΛ࡞༻ͤ͞Δɿ ShorͷΞϧΰϦζϜʹΑΔҼղ N2 ≤ q < 2N2 q = 2k 572 ≤ q < 2 ⋅ 572 q = 212 = 4096 1 q q−1 ∑ x=0 |x⟩ ⊗ |f(x)⟩ ( 1 q ) 2 q−1 ∑ y=0 q−1 ∑ x=0 ei 2πxy q |y⟩ ⊗ |f(x)⟩ 4. ɹͷӈϏοτΛଌఆ͠ɺ ࠨϏοτΛଌఆ͢Δͱ࣍ͷ֬Ͱ yΛಘΒΕΔ ⊗ 1 q⌊q r ⌋ ⌊ q r ⌋−1 ∑ x=0,f(x)=z ei 2πrxy q 2 f57 (x) = 5x mod 57
• N = 57ͱ͢Δɻp = 5ͩͬͨͱ͖ 1. ɹɹɹɹɹɹɹͱͳΔΑ͏ͳɹɹɹɹΛબͿ ɹɹɹɹɹɹɹɹ ΑΓ
2. ྔࢠϏοτΛ࡞͢Δɿ 3. ྔࢠϑʔϦΤมΛ࡞༻ͤ͞Δɿ ShorͷΞϧΰϦζϜʹΑΔҼղ N2 ≤ q < 2N2 q = 2k 572 ≤ q < 2 ⋅ 572 q = 212 = 4096 1 q q−1 ∑ x=0 |x⟩ ⊗ |f(x)⟩ ( 1 q ) 2 q−1 ∑ y=0 q−1 ∑ x=0 ei 2πxy q |y⟩ ⊗ |f(x)⟩ 4. ɹͷӈϏοτΛଌఆ͠ɺ ࠨϏοτΛଌఆ͢Δͱ࣍ͷ֬Ͱ yΛಘΒΕΔ ⊗ 1 q⌊q r ⌋ ⌊ q r ⌋−1 ∑ x=0,f(x)=z ei 2πrxy q 2 f57 (x) = 5x mod 57
2. ྔࢠϏοτͷ࡞ ShorͷΞϧΰϦζϜʹΑΔҼղ 1 q q−1 ∑ x=0 |x⟩ ⊗
|f(x)⟩ = 1 q (|0⟩ ⊗ |50⟩ + |1⟩ ⊗ |51⟩ + |2⟩ ⊗ |52⟩ + . . . +|18⟩ ⊗ |50⟩ + |19⟩ ⊗ |51⟩ + |20⟩ ⊗ |52⟩ + . . . +|4086⟩ ⊗ |50⟩ + |4087⟩ ⊗ |51⟩ + |4088⟩ ⊗ |52⟩ + . . . + |4095⟩ ⊗ |59⟩)
ShorͷΞϧΰϦζϜʹΑΔҼղ 1 q q−1 ∑ x=0 |x⟩ ⊗ |f(x)⟩ =
1 q (|0⟩ ⊗ |50⟩ + |1⟩ ⊗ |51⟩ + |2⟩ ⊗ |52⟩ + . . . +|18⟩ ⊗ |50⟩ + |19⟩ ⊗ |51⟩ + |20⟩ ⊗ |52⟩ + . . . +|4086⟩ ⊗ |50⟩ + |4087⟩ ⊗ |51⟩ + |4088⟩ ⊗ |52⟩ + . . . + |4095⟩ ⊗ |59⟩) 2. ྔࢠϏοτͷ࡞
2. ྔࢠϏοτͷ࡞ ShorͷΞϧΰϦζϜʹΑΔҼղ 1 q q−1 ∑ x=0 |x⟩ ⊗
|f(x)⟩ = 1 q (|0⟩ ⊗ |50⟩ + |1⟩ ⊗ |51⟩ + |2⟩ ⊗ |52⟩ + . . . +|18⟩ ⊗ |50⟩ + |19⟩ ⊗ |51⟩ + |20⟩ ⊗ |52⟩ + . . . +|4086⟩ ⊗ |50⟩ + |4087⟩ ⊗ |51⟩ + |4088⟩ ⊗ |52⟩ + . . . + |4095⟩ ⊗ |59⟩) ((|0⟩ + |18⟩ + . . . + |4086⟩)|50⟩ +(|1⟩ + |19⟩ + |37⟩ + . . . + |4087⟩)|51⟩ + . . . +(|17⟩ + |35⟩ + |53⟩ + . . . + |4085⟩)|517⟩) ཧ͢Δͱ…
ShorͷΞϧΰϦζϜʹΑΔҼղ ((|0⟩ + |18⟩ + . . . + |4086⟩)|50⟩
+(|1⟩ + |19⟩ + |37⟩ + . . . + |4087⟩)|51⟩ + . . . 4. पظTͷಋग़ͱҼղ
Λࣔ͢ɻ͜ͷͱ͖ࠨϏοτͷ0Λআ͘ ࠷খۮ͕ʰҐʱʹͳΔɻ Αͬͯ T=18 ͱͳΔ ShorͷΞϧΰϦζϜʹΑΔҼղ ((|0⟩ + |18⟩ +
. . . + |4086⟩)|50⟩ +(|1⟩ + |19⟩ + |37⟩ + . . . + |4087⟩)|51⟩ + . . . |50⟩ = f57 (x) = 5x mod 57 = 1 4. पظTͷಋग़ͱҼղ
ShorͷΞϧΰϦζϜʹΑΔҼղ ((|0⟩ + |18⟩ + . . . + |4086⟩)|50⟩
+(|1⟩ + |19⟩ + |37⟩ + . . . + |4087⟩)|51⟩ + . . . |50⟩ = f57 (x) = 5x mod 57 = 1 gcd(pT 2 ± 1,N) ͕ඇࣗ໌ͳҼͳͷͰ… Λࣔ͢ɻ͜ͷͱ͖ࠨϏοτͷ0Λআ͘ ࠷খۮ͕ʰҐʱʹͳΔɻ Αͬͯ T=18 ͱͳΔ 4. पظTͷಋग़ͱҼղ
4. पظTͷಋग़ͱҼղ ShorͷΞϧΰϦζϜʹΑΔҼղ ((|0⟩ + |18⟩ + . . .
+ |4086⟩)|50⟩ +(|1⟩ + |19⟩ + |37⟩ + . . . + |4087⟩)|51⟩ + . . . |50⟩ = f57 (x) = 5x mod 57 = 1 gcd(518 2 + 1,57) = gcd(1953126,57) = 3 gcd(518 2 − 1,57) = gcd(1953124,57) = 19 ҼղͰ͖ͨʂ gcd(pT 2 ± 1,N) ͕ඇࣗ໌ͳҼͳͷͰ… Λࣔ͢ɻ͜ͷͱ͖ࠨϏοτͷ0Λআ͘ ࠷খۮ͕ʰҐʱʹͳΔɻ Αͬͯ T=18 ͱͳΔ
·ͱΊ • ྔࢠίϯϐϡʔλ͢ΕͱΜͰͳ͍Խ͚ ˠ ݱࡏͷPCੑೳΛӽ͑ΔͨΊʹ·ͩ·͕͔͔ͩ࣌ؒΔ • ܭࢉ݁Ռ͋͘·Ͱʰ֬ʱͰ͋Γɺ෮ܭࢉΛߦ͏ඞཁ͋Γ ˠ ܭࢉʹલճͷ֬Λ༻͍ͯܭࢉ͞ΕΔͨΊ •
Q#͍ͬͯ͏ྔࢠϓϩάϥϛϯάݴޠ͋ΔͷͰݕࡧͯ͠ΈͯͶʂ ˠ ϓϩάϥϜͰ͜ͷΞϧΰϦζϜ͕؆୯ʹ͔͚Δʂ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ εϥΠυɾղઆ ϒϩάʹUp͠·͢ͷͰੋඇΈ͍ͯͩ͘͞ ✨