{"id":25227205,"url":"https://github.com/nehalmr/qiksit-fall-fest-hackathon-2024","last_synced_at":"2026-05-11T07:52:18.550Z","repository":{"id":258601607,"uuid":"874245756","full_name":"nehalmr/Qiksit-Fall-Fest-Hackathon-2024","owner":"nehalmr","description":"The Qiskit Hackathon is a unique opportunity for students to dive into the fascinating world of quantum computing. Participants will collaborate in teams to tackle a series of challenging problems that test their creativity, problem-solving skills, and understanding of quantum algorithms. This hackathon aims to inspire innovation in QC.","archived":false,"fork":false,"pushed_at":"2024-10-17T13:49:43.000Z","size":899,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T13:13:10.672Z","etag":null,"topics":["cpython","hackathon","ibm","ibm-qiskit","ibm-quantum-challenge","matplotlib","numpy","python","python3","qbits","qiskit","qiskit-tutorial","quantum-algorithms","quantum-computing","quantumcircuits","quantumregister"],"latest_commit_sha":null,"homepage":"https://www.ibm.com/quantum/events/fall-fest-2024","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nehalmr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-17T13:48:07.000Z","updated_at":"2024-10-17T14:00:12.000Z","dependencies_parsed_at":"2024-10-20T15:39:14.465Z","dependency_job_id":null,"html_url":"https://github.com/nehalmr/Qiksit-Fall-Fest-Hackathon-2024","commit_stats":null,"previous_names":["nehalmr/qiksit-fall-fest-hackathon"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nehalmr/Qiksit-Fall-Fest-Hackathon-2024","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalmr%2FQiksit-Fall-Fest-Hackathon-2024","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalmr%2FQiksit-Fall-Fest-Hackathon-2024/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalmr%2FQiksit-Fall-Fest-Hackathon-2024/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalmr%2FQiksit-Fall-Fest-Hackathon-2024/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nehalmr","download_url":"https://codeload.github.com/nehalmr/Qiksit-Fall-Fest-Hackathon-2024/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalmr%2FQiksit-Fall-Fest-Hackathon-2024/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260865933,"owners_count":23074728,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpython","hackathon","ibm","ibm-qiskit","ibm-quantum-challenge","matplotlib","numpy","python","python3","qbits","qiskit","qiskit-tutorial","quantum-algorithms","quantum-computing","quantumcircuits","quantumregister"],"created_at":"2025-02-11T08:12:51.926Z","updated_at":"2026-05-11T07:52:18.522Z","avatar_url":"https://github.com/nehalmr.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Qiksit-Fall-Fest-Hackathon\n## Overview\nThis project combines the implementation of various quantum algorithms and circuits to solve key computational problems. From detecting hidden binary strings to generating true randomness using quantum mechanics, the project journey spans multiple stages, each focusing on a unique quantum concept.\n\n### Key Objectives:\n1. Bernstein-Vazirani Algorithm: Discover hidden binary strings using quantum computing.\n2. **Quantum Phase Estimation (QPE)**—approximate eigenvalues of unitary operators.\n3. **Quantum Ripple-Carry Adder**: Implement multi-qubit addition with a quantum adder.\n4. Flip-Flop Using Quantum Entanglement: Simulate a flip-flop circuit using quantum entanglement.\n5. **True Random Dice Roll Program**: Generate true random numbers and compare quantum randomness with classical methods.\n\n---\n\n## Phase 1: Setting Up the Quantum Environment\n### Steps:\n1. **Install Dependencies**:\n   To start building these quantum solutions, first install the required Python libraries:\n   ```bash\n   !pip install qiskit numpy matplotlib\n   ```\n**Qiskit**: Quantum computing framework.\n**Numpy**: For numerical computations.\n**Matplotlib**: To visualize quantum states and results.\n\n2. **Initialize Quantum Workspace**:\n   Create a Qiskit workspace and test basic quantum circuit functionality to ensure everything is set up correctly.\n\n---\n\n## Phase 2: Implementing Bernstein-Vazirani Algorithm\n### Problem:\nThe goal is to find a hidden binary string using quantum circuits.\n\n### Steps:\n1. **Circuit Creation**:\nBuild a quantum circuit with `n+1` qubits, where `n` is the length of the hidden string.\nApply a Hadamard transform to all qubits to create superpositions.\n   \n2. **Oracle Application**:\n- Encode the hidden string using controlled NOT gates.\n   \n3. **Measurement**:\nMeasure the resulting qubits to recover the hidden string.\n\n4. **Outcome**:\nYou successfully recover the hidden binary string after running the quantum circuit.\n\n---\n\n## Phase 3: Quantum Phase Estimation (QPE)\n### Problem:\nEstimate the phase (eigenvalue) associated with a unitary operator.\n\n### Steps:\n1. **Controlled Unitary**:\nImplement a unitary operation controlled by several qubits.\n\n2. **Quantum Fourier Transform (QFT)**:\nApply QFT to obtain a superposition that encodes phase information.\n\n3. **Simulation**:\nRun the simulation on a quantum backend and measure the eigenvalue estimation.\n\n4. **Outcome**:\nYou successfully approximate the eigenvalue, which can be used in various quantum algorithms, such as Shor’s algorithm.\n\n---\n\n## Phase 4: Quantum Ripple-Carry Adder\n### Problem:\nPerform multi-qubit addition using a ripple-carry adder.\n\n### Steps:\n1. **Build the Quantum Adder**:\nConstruct a quantum circuit in which the binary digits of the numbers to be added are represented by qubits.\n   \n2. **Carry and Sum Operations**:\nImplement logic gates to simulate the carry and sum process of binary addition.\n\n3. **Measurement**:\nMeasure the output qubits to obtain the sum of two binary numbers.\n\n4. **Outcome**:\n   The quantum circuit outputs the correct binary sum after successful multi-qubit addition.\n\n---\n\n## Phase 5: Flip-Flop Using Quantum Entanglement (QE)\n### Problem:\nSimulate a classical flip-flop circuit using the concept of quantum entanglement.\n\n### Steps:\n1. **Entangle Qubits**:\nUse controlled operations to create entanglement between two qubits, where flipping one qubit flips the state of the other.\n\n2. **State Change**:\nSimulate the flip-flop behavior by changing the state of one qubit and observing the immediate effect on the entangled qubit.\n\n3. **Outcome**:\n   Demonstrate how quantum entanglement can mimic classical flip-flop behavior, but with quantum superposition and measurement uncertainties.\n\n---\n\n## Phase 6: True Random Program for Dice Roll (Quantum vs Classical Randomness)\n### Problem:\nCreate a program that generates true random numbers using both quantum and classical methods and compares their results.\n\n### Steps:\n1. **Classical Randomness**:\nUse Python’s `random` library to generate random numbers.\n   \n2. **Quantum Randomness**:\nUse a quantum circuit to generate true random outcomes based on the measurement of superposition states.\n\n3. **Comparison**:\nRoll a die using both methods and compare the randomness distribution using histograms.\n\n4. **Outcome**:\nShow the difference between classical pseudo-random numbers and true quantum randomness.\n\n---\n\n## Conclusion\nThis journey from implementing fundamental quantum algorithms to building quantum circuits demonstrates the power of quantum computing in solving complex problems like binary string detection, eigenvalue approximation, multi-qubit addition, and even true randomness generation. By the end of this project, you will have a deep understanding of how quantum mechanics can be leveraged for computational advancements in multiple domains.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnehalmr%2Fqiksit-fall-fest-hackathon-2024","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnehalmr%2Fqiksit-fall-fest-hackathon-2024","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnehalmr%2Fqiksit-fall-fest-hackathon-2024/lists"}