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

LaTeXでスライドをつくるてすと:こどふぉのQ#による量子計算コンテストを添えて/ TEST...

LaTeXでスライドをつくるてすと:こどふぉのQ#による量子計算コンテストを添えて/ TEST-codeforces-2019warmup-QuantumComputing-byBeginner

スライド作りの練習のために作りました

これに参加したやつです
https://codeforces.com/contest/1115

Q#環境のDLはこちら
https://www.microsoft.com/en-us/quantum/development-kit

途中誤字ってますね...「歯科」でなく「しか」です

Avatar for alumina8

alumina8

March 02, 2019
Tweet

Other Decks in Programming

Transcript

  1. ໨࣍ 1 ֓ཁ 2 Q#ͱ͸? 3 ໰୊ͨͪ 4 A Λղ͍ͯΈΔ

    5 ͓͠·͍ ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2, 2019 2 / 20
  2. ֓ཁ ͱ͍͏ͳΜͱ΋ࡶͳΞϨ͚ͩͲΏΔͯ͠Ͷ ͪͳΈʹ 6 ໰͋ͬͨ͏ͪ࠷ॳͷ 2 ໰͔͠ͱ͚ͯͳ͍͠ ͦΕ͔͠ݴٴ͠ͳ͍Αʂ 5000 ਓ͘Β͍ొ࿥ͯͨ͠ͷʹ

    AC ͕ 3 ܻͩͬͨ͠͠ΐ ͏͕ͳ͍Ͷ ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2, 2019 5 / 20
  3. ֓ཁ ࢀՃͨ࣌͠ͷ஌ࣝͱͯ͠͸ɼ • ͳΜ͔ฒྻͱ͔ڧͦ͏ • Α͘Θ͔ΒΜ • ͔͍͍ͬ͜ʂ(ˡ̍൪ॏཁ) • Ͱ΋Α͘Θ͔ΒΜ

    • ͦ΋ͦ΋ C#Θ͔ΒΜ • શવΘ͔ΒΜ ͱ͍͏ײ͡Ͱ͢ɽ͍·΋͜Μͳײ͡Ͱ͢ɽ ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2, 2019 6 / 20
  4. Q#ͱ͸? ͦ΋ͦ΋Q#ͬͯͳʹ? • ϚΠΫϩιϑτ͞Μ͕ͭͬͨ͘ྔࢠίϯϐϡʔλ ޲͚ݴޠ • ྔࢠϏοτͱήʔτΛ͔͍ͭͬͯΖ͍ΖͰ͖Δ • γϛϡϨʔλ͖ͭ։ൃ؀ڥ͕͋Δʂ ͪ͜Β͔Β

    DL ͱ͔Ͱ͖·͢ www.microsoft.com/en-us/quantum/development-kit ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2, 2019 7 / 20
  5. Q#ͱ͸? ྔࢠܭࢉ...? ήʔτ͕͍Ζ͍Ζ͋Γ·ͯ͠ • X(qubit) Ͱ 0 ͱ 1 ΛೖΕସ͑ͨΓ...(ύ΢Ϧήʔτ

    ͷҰछ) • H(qubit) Ͱ 0 ͱ 1 ΛॏͶ߹Θͤঢ়ଶʹͨ͠Γ...(Ξ μϚʔϧήʔτ) ΄͔ʹ΋؍ଌͤͨ͞Γͱ͔͍ΖΜͳ͜ͱ͕Ͱ͖Δ... Β ͍͠ ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2, 2019 8 / 20
  6. ໰୊ͨͪ ग़͞Εͨ໰୊ A ͱ B Λղ͖·ͨ͠ɽࣃՊղ͚·ͤΜͰͨ͠ɽ಺༰ͱ ͯ͠͸΄΅ڞ௨Ͱ͋Γ·͢ɽ x[] ͱ y

    ͷ Qubit ͕͋ͨ͑ΒΕ A Ͱ͸ y Λ (x[0] ∧ x[1] ∧ ...) ⊕ y ʹ͢ΔॲཧΛɼ B Ͱ͸ y Λ (x[0] ∨ x[1] ∨ ...) ⊕ y ʹ͢ΔॲཧΛɼ ͦΕͧΕ༻ҙ͞Εͨ਽ܗʹॲཧΛॻ͍ͯؔ਺Λ׬੒͞ ͤͯ΍Ζ͏ɼͱ͍͏΋ͷͰ͢ɽ ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2, 2019 11 / 20
  7. ໰୊ͨͪ ͍ͭ͜ ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2, 2019

    12 / 20 ͜Εʹ͍Ζ͍Ζॻ͍͍ͯ͘ͷͰ͋Γ·͢ Figure: ͜Εʹॻ͖͜ΜͰ͍͘ɽ࢖͍উखΛࢼ ͔ͨͬͨ͠ͷͰ͍ͭ͜͸ը૾Ͱ͋Δ
  8. A Λղ͍ͯΈΔ CNOTͱ͸ CNOT(x,y) ͱͨ͠ͱ͖ɼx=1 ͳΒ y Λ൓సɼx=0 ͳΒ y

    ʹ͸Կ΋͠ͳ͍ɼͦΜͳήʔτ ͜ΜͳΜ ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2, 2019 15 / 20 x y x y NEXT y =x⊕y NEXT x y NEXT y 0 0 0 0 1 1 1 0 1 1 1 0
  9. A Λղ͍ͯΈΔ CNOTͷͳ͔· ௐ΂͍ͯΔͱɼCNOT ͷ஥ؒͱͯ͠ɼCCNOT ͱ͍͏ ΋ͷΛൃݟ͠·ͨ͠ (ӈͷ΍ͭ) ̎ͭͷ੍ޚ༻ͷೖྗ͕ͱ΋ʹ 1

    ͷͱ͖ͷΈ y ΁࡞༻͞ ͤΔɼͱ͍͏΋ͷͰ͢ɽ ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2, 2019 16 / 20 x y x y NEXT y =x⊕y NEXT
  10. A Λղ͍ͯΈΔ CNOTͷͳ͔· ௐ΂͍ͯΔͱɼCNOT ͷ஥ؒͱͯ͠ɼCCNOT ͱ͍͏ ΋ͷΛൃݟ͠·ͨ͠ (ӈͷ΍ͭ) ̎ͭͷ੍ޚ༻ͷೖྗ͕ͱ΋ʹ 1

    ͷͱ͖ͷΈ y ΁࡞༻͞ ͤΔɼͱ͍͏΋ͷͰ͢ɽ ...A ໰୊ͷ x[] ͷ௕͕͞ 2 ͷͱ͖ʹ͔ͭ͑ΔͷͰ͸?! ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2, 2019 16 / 20 x y x y NEXT y =x⊕y NEXT
  11. A Λղ͍ͯΈΔ ͋ͬͨ Controlled X([control1, control2...], target); ͷΑ͏ʹ͢Δͱ͢΂ͯ 1 ͷͱ͖

    target Λͻͬ͘Γ͔͑ ͯ͘͠Ε·͢ ݟ͚ͭΔ·Ͱʹ 4 ࣌ؒ͘Β͍ݕࡧͯ͠·ͨ͠... Q#ͬ ͯ·ͩ࢖ͬͯΔਓগͳ͍Έ͍ͨͳͷͰݕࡧ͠ʹ͍͘Μ Ͱ͢ΑͶ ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2, 2019 18 / 20
  12. A Λղ͍ͯΈΔ ͜͏ͳΓ·ͨ͠ ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2,

    2019 19 / 20 1 namespace Solution { 2 open Microsoft.Quantum.Primitive; 3 open Microsoft.Quantum.Canon; 4 operation Solve (x : Qubit [], y : Qubit) : Unit { 5 6 body (...) { 7 // your code here 8 9 Controlled X(x, y); 10 } 11 adjoint auto; 12 } 13 } ͸͡ΊͷํʹͰͨ X ήʔτ͘Μେ׆༂Ͱ͢Ͷ ... ྗਚ͖ͨͷͰ B ͱ͔ͦΕҎ߱͸ࣗ෼Ͱߟ͑Δ ͳΓղ౴ΈΔͳΓͯ͠Ͷ
  13. ͓͠·͍ ͓͠·͍ Q#͘Μ΋ͬͱྲྀߦ͍͍ͬͯͨͩͯ ೔ຊޠͷνϡʔτϦΞϧ͕ॆ࣮ͨ͠Βͳ͋... LaTeX ͰεϥΠυΛͭ͘Δ (౰ॳͷ໨త)ͬͯͷ͸ศར ͦ͏ͩͳͬͯࢥ͍·ͨ͠ ͨͩͦΕҎલʹεϥΠυΛ࡞Δͬͯͷ͕݁ߏΉ͔ͣ͠ ͍Μͩͳ͓ͬͯ΋͍·ͨ͠

    ଔ࿦ͱ͔ෆ҆Ͱ͢Ͷ (ന໨) ͋ͱίϯύΠϧ͕ͱͯ΋͔͔࣌ؒͬͨͷͰ͜ΜͲ͔Β ෼ׂ͍ͨ͠ͱࢥ͍·͢ ീఝ ͔ͱ (͵) ͯ͢ͱɿLaTeX ͰεϥΠυͭͬͯ͘ΈΔ March 2, 2019 20 / 20