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
850
高専カンファレンス新春 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
バイセルでの AI を用いた開発の取り組み ~ Devin, Cursor の活用事例・知見共有 ~
umaidashi
0
130
Datadog DBMでなにができる? JDDUG Meetup#7
nealle
0
160
kintone開発を効率化するためにチームで試した施策とその結果を大放出!
oguemon
0
400
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
520
読まないコードリーディング術
hisaju
1
150
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
9
1.7k
機能が複雑化しても 頼りになる FactoryBotの話
tamikof
1
260
はじめてのIssueOps - GitHub Actionsで実現するコメント駆動オペレーション
tmknom
5
1.7k
ナレッジイネイブリングにAIを活用してみる ゆるSRE勉強会 #9
nealle
0
170
高セキュリティ・高耐障害性・サブシステム化。そして2億円
tasukulab280
2
410
❄️ NixOS/nixpkgsにSATySFiサポートを実装する
momeemt
1
110
PromptyによるAI開発入門
ymd65536
1
150
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Building Adaptive Systems
keathley
40
2.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7.1k
GitHub's CSS Performance
jonrohan
1030
460k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Statistics for Hackers
jakevdp
797
220k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Visualization
eitanlees
146
15k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
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͠·͢ͷͰੋඇΈ͍ͯͩ͘͞ ✨