Ngôn ngữ lập trình nào phù hợp cho người mới bắt đầu?


12

Tôi hiểu rằng có rất nhiều ngôn ngữ lập trình (ví dụ: Q #, Qiskit, v.v.)

Cái nào phù hợp với người mới bắt đầu học lập trình và không biết gì về cơ học lượng tử?

Câu trả lời:


7

Các ngôn ngữ về cơ bản là giống nhau cho một người dùng mới. Tất cả đều thực hiện cùng một tập hợp các hoạt động lượng tử cơ bản, đó là những hoạt động đã được các nhà nghiên cứu sử dụng trong vài thập kỷ qua.

Nếu bạn mới bắt đầu lập trình, yếu tố phù hợp nhất với bạn có thể là ngôn ngữ mà SDK lượng tử được viết. Chúng chủ yếu bằng Python, nhưng QISKit cũng có các biến thể Swift và Java. Q # được tích hợp vào Visual Studio.

Ngoài ra, có những khác biệt trong những thứ như

  • tài liệu hướng dẫn
  • trình giả lập hoặc thiết bị lượng tử thực mà chương trình của bạn sẽ chạy trên
  • các ứng dụng cấp cao không đòi hỏi kiến ​​thức lượng tử.

Tôi rất thiên vị trong những gì tôi đề xuất (và vì vậy tôi hy vọng rằng những người khác thiên vị theo các hướng khác nhau cũng sẽ trả lời câu hỏi của bạn) nhưng tôi nói rằng hãy xem blog QISKit có thể là một khởi đầu tốt. Đây là một vài bài viết của riêng tôi


5

Nó phụ thuộc vào ngôn ngữ mà bạn sẽ có nhiều mối quan hệ hơn.

Qiskit, pyQuil, v.v. đều bằng Python, đây là ngôn ngữ lập trình dễ hiểu nói chung với rất nhiều thư viện hữu ích. Họ cung cấp tài liệu / hướng dẫn để làm cho bất kỳ người mới bắt đầu bắt đầu tính toán lượng tử. Viết mã có thể được thực hiện trong một vài dòng.

Q # nằm trong C #. Tôi chưa thử nhưng nếu bạn bắt đầu học lập trình tập trung vào C hoặc C ++ (và thích nó), tôi đoán bạn nên thoải mái với cái này.

Để tìm hiểu, tôi khuyên bạn nên đọc cuốn sách Tính toán lượng tử và Thông tin lượng tử từ Nielsen và Chuang hoặc Máy tính lượng tử cho các nhà khoa học máy tính từ Yanofsky và Mannucci; nếu bạn có thể có quyền truy cập vào chúng và song song xem xét một số mã trong nền tảng bạn chọn. Nhưng nó luôn luôn là một ý tưởng tốt để kết hợp các nguồn và giải thích khác nhau để hiểu rõ hơn.


2
Tôi thực sự không nghĩ Mike & Ike là một cuốn sách tốt cho người mới bắt đầu. Nó giới thiệu quá nhiều quá nhanh, Các cuốn sách khác như Máy tính lượng tử cho các nhà khoa học máy tính hoặc Khoa học máy tính lượng tử: Giới thiệu là IMO tốt hơn nhiều. Mike & Ike là tốt khi bạn có kiến ​​thức làm việc về điện toán lượng tử và muốn tiếp tục phát triển nó.
ahelwer

@ahelwer Đây là một nhận xét có liên quan. Máy tính lượng tử cho các nhà khoa học máy tính thực sự có rất nhiều ví dụ bằng số. Nó sẽ phù hợp với người mới bắt đầu tốt hơn.
cnada

4

Tôi đồng ý với câu trả lời của James Wootton. Sự lựa chọn ngôn ngữ trở nên quan trọng khi bạn làm việc trong một dự án lớn hơn mà bạn muốn dựa vào thư viện, ước tính tài nguyên và các tính năng nâng cao khác. Khi bạn bắt đầu tìm hiểu những điều cơ bản về điện toán lượng tử và lập trình lượng tử, các chương trình của bạn sẽ rất nhỏ và thực sự không khác biệt giữa các ngôn ngữ khác nhau.

Tôi cho rằng bạn sẽ trải qua một số cuốn sách / khóa học về lý thuyết điện toán lượng tử. Trong trường hợp này, có hai điều bạn chắc chắn sẽ muốn từ ngôn ngữ lập trình:

  • một bộ hướng dẫn / bài tập lập trình giới thiệu tuyệt vời để giúp bạn tiếp thu lý thuyết bạn đã học.
  • một trình giả lập trạng thái lượng tử sẽ cho phép bạn xem trạng thái của các qubit khi chương trình của bạn thực thi.

Đề xuất của tôi (thiên vị theo hướng khác nhau, như James đề xuất :-)) là hãy xem Q #:

  • Quantum Katas là các hướng dẫn lập trình tự nhịp độ được thiết kế để đi kèm với một khóa học về lý thuyết điện toán lượng tử. Mỗi hướng dẫn bao gồm một tập các bài tập để bạn giải quyết và khai thác kiểm tra hậu trường để kiểm tra xem mã của bạn có đúng không, cung cấp cho bạn phản hồi ngay lập tức. Các hướng dẫn hiện có bao gồm một tập hợp các chủ đề giới thiệu và chúng tôi đang nỗ lực tạo ra nhiều hướng dẫn hơn.
  • Trình mô phỏng trạng thái đầy đủ có trong Bộ công cụ phát triển lượng tử cho phép kết xuất trạng thái hệ thống dưới dạng danh sách biên độ, do đó bạn có thể sử dụng nó bất cứ khi nào bạn muốn kiểm tra xem trạng thái của hệ thống có phù hợp với sự hiểu biết / kỳ vọng của bạn hay không.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.