Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
circuit editor jest funkcją zestawu narzędzi Quantum Development Kit (QDK), która udostępnia interfejs graficzny, w którym można tworzyć, edytować i wizualizować diagramy obwodów kwantowych w projektach Q#. Możesz użyć obwodów, które tworzysz bezpośrednio w Q# programach jako operacji możliwych do wywołania.
Jak uzyskać dostęp do circuit editor
Aby rozpocząć pracę z programem circuit editor, wykonaj następujące kroki:
- Utwórz nowy Q# projekt w programie VS Code lub otwórz istniejący projekt.
- Utwórz nowy plik obwodu z rozszerzeniem
.qsc. - Otwórz plik obwodu w programie VS Code.
Widok domyślny dla plików circuit editor to .qsc.
funkcje circuit editor
Oto, co można zrobić za pomocą polecenia circuit editor:
| Funkcja | Jak używać |
|---|---|
| Rozwiń panel wizualizacji stanu | Kliknij pozycję Wizualizacja stanu, aby rozwinąć panel Wizualizatora stanów i wyświetlić wynikowy stan kwantowy z uruchomienia obwodu. Na panelu przedstawiono gęstość prawdopodobieństwa i fazę dla każdego stanu podstawy. Przybornik służy do edytowania obwodu i wyświetlania aktualizacji panelu na żywo. |
| Wstawianie elementu obwodu | Kliknij i przeciągnij element z przybornika do diagramu obwodu. |
| Usuwanie elementu obwodu | Kliknij i przeciągnij element z diagramu obwodu. Możesz też kliknąć prawym przyciskiem myszy element i wybrać polecenie Usuń z menu kontekstowego. |
| Przenoszenie elementu obwodu | Kliknij i przeciągnij element do nowej lokalizacji na diagramie obwodu. |
| Kopiowanie elementu obwodu | Przytrzymaj wciśnięty Ctrl , klikając i przeciągając element do nowej lokalizacji na diagramie obwodu. |
| Dodaj kubit | Umieść element z przybornika na nowym przewodzie na schemacie obwodu. Możesz też przenieść istniejący element do nowego przewodu na diagramie. |
| Usuń kubit | Kliknij i przeciągnij ikonę kubitu z diagramu obwodu. Kubit najbardziej dolny jest automatycznie usuwany po usunięciu wszystkich elementów obwodu z tego kubitu. |
| Zmień kolejność kubitów | Kliknij i przeciągnij ikony kubitu na diagramie obwodu. |
| Dodawanie kontrolki do bramy | Kliknij prawym przyciskiem myszy ikonę bramy, wybierz polecenie Dodaj kontrolkę z menu kontekstowego, a następnie wybierz przewód kubitu sterującego. |
| Usuwanie kontrolki z bramy | Kliknij prawym przyciskiem myszy ikonę bramy, wybierz polecenie Usuń kontrolkę z menu kontekstowego, a następnie wybierz ikonę kontrolki, którą chcesz usunąć. Możesz również kliknąć prawym przyciskiem myszy ikonę kontrolki bezpośrednio i wybrać polecenie Usuń kontrolkę lub przeciągnąć ikonę kontrolki z diagramu. |
| Konwertowanie bramy na jej przyleganie | Kliknij prawym przyciskiem myszy ikonę bramy i wybierz Przełącz Adjoint z menu kontekstowego. |
| Definiowanie argumentu bramy | Podczas umieszczania bramy, która wymaga podania argumentu, zostanie wyświetlone okno dialogowe. Wprowadź liczbę lub wyrażenie w polu monitu. Aby zaktualizować argument, kliknij prawym przyciskiem myszy bramę i wybierz polecenie Edytuj argument. Możesz też kliknąć lewym przyciskiem myszy tekst argumentu na ikonie bramy. |
Jak używać circuit editor obwodów w Q# projektach
Pliki obwodów z rozszerzeniem .qsc definiują operacje, do których można się odwoływać z kodu Q# w ramach tego samego projektu Q#. Obwody z .qsc plików są wyświetlane jak każda inna Q# operacja i są obsługiwane przez usługę Q# językową z funkcjami takimi jak uzupełnianie, pomoc dotycząca podpisów i definicja go-to.
Plik obwodu definiuje przestrzeń nazw pochodzącą z nazwy pliku, podobną do sposobu Q# działania plików. Obwód w pliku .qsc definiuje operację Q#, która ma taką samą nazwę jak ten plik w tej samej przestrzeni nazw. Aby na przykład odwołać się do obwodu z pliku Foo.qsc w kodzie Q#, użyj następującej instrukcji importu: import Foo.Foo;.
Poniższy Q# program importuje obwód z pliku JointMeasurement.qsc, a następnie wywołuje JointMeasurement() operację w celu zastosowania obwodu do systemu kubitów.
import JointMeasurement.JointMeasurement;
operation Main() : Result[] {
use qs = Qubit[4];
ApplyToEach(H, qs[0..2]);
let results = JointMeasurement(qs);
ResetAll(qs);
results
}