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
880
高専カンファレンス新春 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
120
Other Decks in Programming
See All in Programming
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
1.7k
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
190
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
460
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
180
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @enterJS Advanced Angular Day 2025
manfredsteyer
PRO
0
170
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
590
WindowInsetsだってテストしたい
ryunen344
1
230
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
50
32k
5つのアンチパターンから学ぶLT設計
narihara
1
140
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
460
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
0
1.1k
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.8k
Designing for humans not robots
tammielis
253
25k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
KATA
mclloyd
30
14k
What's in a price? How to price your products and services
michaelherold
246
12k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
A designer walks into a library…
pauljervisheath
207
24k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
950
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͠·͢ͷͰੋඇΈ͍ͯͩ͘͞ ✨