# Help with the implementation of Deutsch Algorithm using Yao.jl

**URL:** <https://discourse.julialang.org/t/help-with-the-implementation-of-deutsch-algorithm-using-yao-jl/45384>\
**Category:** Quantum\
**Tags:** question\
**Created:** [August 22, 2020, 9:35pm UTC](https://discourse.julialang.org/t/help-with-the-implementation-of-deutsch-algorithm-using-yao-jl/45384 "2020-08-22T21:35:45Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ChetanVardhan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chetanvardhan/32/222198_2.png) [@ChetanVardhan](https://discourse.julialang.org/u/ChetanVardhan)\
**Post date:** [August 22, 2020, 9:35pm UTC](https://discourse.julialang.org/t/help-with-the-implementation-of-deutsch-algorithm-using-yao-jl/45384/1 "2020-08-22T21:35:45Z")

</div>

Need help implementing the oracle from Deutsch’s Algorithm in Yao.jl  
Anyone has any ideas on how to do this? Any type of help will be appreciated

---

<div class="post-metadata">

**Author:** ![anon37204545](https://avatars.discourse-cdn.com/v4/letter/a/439d5e/32.png) [@anon37204545](https://discourse.julialang.org/u/anon37204545)\
**Post date:** [August 24, 2020, 1:37am UTC](https://discourse.julialang.org/t/help-with-the-implementation-of-deutsch-algorithm-using-yao-jl/45384/2 "2020-08-24T01:37:20Z")

</div>

> [@ChetanVardhan](#):
>
> Deutsch’s Algorithm

[Deutsch–Josza](https://en.wikipedia.org/wiki/Deutsch%E2%80%93Jozsa_algorithm) or just [Deutsch](https://en.wikipedia.org/wiki/Deutsch%E2%80%93Jozsa_algorithm#Deutsch's_algorithm) as its special case?

---

<div class="post-metadata">

**Author:** ![ChetanVardhan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chetanvardhan/32/222198_2.png) [@ChetanVardhan](https://discourse.julialang.org/u/ChetanVardhan)\
**Post date:** [August 24, 2020, 5:25am UTC](https://discourse.julialang.org/t/help-with-the-implementation-of-deutsch-algorithm-using-yao-jl/45384/3 "2020-08-24T05:25:32Z")

</div>

Just the Deutsch algorithm!

---

<div class="post-metadata">

**Author:** ![ChetanVardhan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chetanvardhan/32/222198_2.png) [@ChetanVardhan](https://discourse.julialang.org/u/ChetanVardhan)\
**Post date:** [October 20, 2020, 8:43pm UTC](https://discourse.julialang.org/t/help-with-the-implementation-of-deutsch-algorithm-using-yao-jl/45384/5 "2020-10-20T20:43:17Z")

</div>

> using Yao, YaoExtensions, YaoPlots, StatsBase  
> circuit0 = chain(2)  
> circuit1 = chain(2, control(1, 2=\>X))  
> circuit2 = chain(2, control(1, 2=\>X), put(2=\>X))  
> circuit3 = chain(2, put(2=\>X))  
> circuit = [circuit0 circuit1 circuit2 circuit3]  
> ra = rand(1:4)  
> result = ArrayReg(bit"10") |\> chain(2,repeat(H,1:2), put(1:2=\>circuit[ra]),put(1=\>H)) |\> r-\>measure(r, 1, nshots=1000)  
> res = fit(Histogram, Int.(result), 0:2)  
> answer = res.weights[1]==0 ? “Balanced” : “Constant”

Better implementations are welcome as answer!🙂
