Hướng dẫn how do you make a tower of hanoi in python? - Làm thế nào để bạn tạo một tòa tháp hà nội trong python?
Cải thiện bài viết Show
Lưu bài viết Cải thiện bài viết Lưu bài viết Đọc Python3Bàn luận Tower of Hà Nội là một câu đố toán học nơi chúng tôi có ba thanh và đĩa N. Mục tiêu của câu đố là di chuyển toàn bộ ngăn xếp sang một thanh khác, tuân theo các quy tắc đơn giản sau: & nbsp; 1) Chỉ có thể di chuyển một đĩa. các ngăn xếp và đặt nó lên trên một ngăn xếp khác, tức là một đĩa chỉ có thể được di chuyển nếu đó là đĩa trên cùng trên ngăn xếp. & nbsp; 3) không có đĩa nào được đặt trên đầu của một đĩa nhỏ hơn. 1 đĩa từ thanh nguồn đến thanh phụ trợ một lần nữa có thể được coi là một vấn đề mới và có thể được giải quyết theo cách tương tự. & Nbsp;
def TowerOfHanoi(n , s_pole, d_pole, i_pole): if n == 1: print("Move disc 1 from pole",s_pole,"to pole",d_pole) return TowerOfHanoi(n-1, s_pole, i_pole, d_pole) print("Move disc",n,"from pole",s_pole,"to pole",d_pole) TowerOfHanoi(n-1, i_pole, d_pole, s_pole) n = 3 TowerOfHanoi(n, 'A', 'C', 'B') # A, C, B are the name of poles1 def TowerOfHanoi(n , s_pole, d_pole, i_pole): if n == 1: print("Move disc 1 from pole",s_pole,"to pole",d_pole) return TowerOfHanoi(n-1, s_pole, i_pole, d_pole) print("Move disc",n,"from pole",s_pole,"to pole",d_pole) TowerOfHanoi(n-1, i_pole, d_pole, s_pole) n = 3 TowerOfHanoi(n, 'A', 'C', 'B') # A, C, B are the name of poles9
Các
def TowerOfHanoi(n , s_pole, d_pole, i_pole): if n == 1: print("Move disc 1 from pole",s_pole,"to pole",d_pole) return TowerOfHanoi(n-1, s_pole, i_pole, d_pole) print("Move disc",n,"from pole",s_pole,"to pole",d_pole) TowerOfHanoi(n-1, i_pole, d_pole, s_pole) n = 3 TowerOfHanoi(n, 'A', 'C', 'B') # A, C, B are the name of poles1 def TowerOfHanoi(n , s_pole, d_pole, i_pole): if n == 1: print("Move disc 1 from pole",s_pole,"to pole",d_pole) return TowerOfHanoi(n-1, s_pole, i_pole, d_pole) print("Move disc",n,"from pole",s_pole,"to pole",d_pole) TowerOfHanoi(n-1, i_pole, d_pole, s_pole) n = 3 TowerOfHanoi(n, 'A', 'C', 'B') # A, C, B are the name of poles2 def TowerOfHanoi(n , s_pole, d_pole, i_pole): if n == 1: print("Move disc 1 from pole",s_pole,"to pole",d_pole) return TowerOfHanoi(n-1, s_pole, i_pole, d_pole) print("Move disc",n,"from pole",s_pole,"to pole",d_pole) TowerOfHanoi(n-1, i_pole, d_pole, s_pole) n = 3 TowerOfHanoi(n, 'A', 'C', 'B') # A, C, B are the name of poles3 def TowerOfHanoi(n , s_pole, d_pole, i_pole): if n == 1: print("Move disc 1 from pole",s_pole,"to pole",d_pole) return TowerOfHanoi(n-1, s_pole, i_pole, d_pole) print("Move disc",n,"from pole",s_pole,"to pole",d_pole) TowerOfHanoi(n-1, i_pole, d_pole, s_pole) n = 3 TowerOfHanoi(n, 'A', 'C', 'B') # A, C, B are the name of poles4 def TowerOfHanoi(n , s_pole, d_pole, i_pole): if n == 1: print("Move disc 1 from pole",s_pole,"to pole",d_pole) return TowerOfHanoi(n-1, s_pole, i_pole, d_pole) print("Move disc",n,"from pole",s_pole,"to pole",d_pole) TowerOfHanoi(n-1, i_pole, d_pole, s_pole) n = 3 TowerOfHanoi(n, 'A', 'C', 'B') # A, C, B are the name of poles5 def TowerOfHanoi(n , s_pole, d_pole, i_pole): if n == 1: print("Move disc 1 from pole",s_pole,"to pole",d_pole) return TowerOfHanoi(n-1, s_pole, i_pole, d_pole) print("Move disc",n,"from pole",s_pole,"to pole",d_pole) TowerOfHanoi(n-1, i_pole, d_pole, s_pole) n = 3 TowerOfHanoi(n, 'A', 'C', 'B') # A, C, B are the name of poles6 def TowerOfHanoi(n , s_pole, d_pole, i_pole): if n == 1: print("Move disc 1 from pole",s_pole,"to pole",d_pole) return TowerOfHanoi(n-1, s_pole, i_pole, d_pole) print("Move disc",n,"from pole",s_pole,"to pole",d_pole) TowerOfHanoi(n-1, i_pole, d_pole, s_pole) n = 3 TowerOfHanoi(n, 'A', 'C', 'B') # A, C, B are the name of poles7
Move disk 1 from source A to destination C Move disk 2 from source A to destination B Move disk 1 from source C to destination B Move disk 3 from source A to destination C Move disk 1 from source B to destination A Move disk 2 from source B to destination C Move disk 1 from source A to destination C Move disk 4 from source A to destination B Move disk 1 from source C to destination B Move disk 2 from source C to destination A Move disk 1 from source B to destination A Move disk 3 from source C to destination B Move disk 1 from source A to destination C Move disk 2 from source A to destination B Move disk 1 from source C to destination B
Đầu raO(n) Độ phức tạp về thời gian: O (2N) Tháp Hà Nội là một vấn đề toán học (câu đố) bao gồm 3 cực và số lượng đĩa, mỗi đĩa có đường kính khác nhau. Mục tiêu hoặc mục tiêu của vấn đề này là chuyển tất cả các đĩa ’n từ cực nguồn sang cực đích theo cách mà chúng ta có được sự sắp xếp tương tự của các đĩa như trước đây. Nhưng mục tiêu này phải đạt được bằng cách tuân thủ các quy tắc. Các ràng buộc phải được thỏa mãn trong khi giải quyết vấn đề là - Hình ảnh sau đây cho thấy giải pháp riêng cho một tòa tháp Hà Nội với 3 cực (nguồn, trung gian, đích) và 3 đĩa. Mục tiêu là di chuyển tất cả 3 đĩa từ cực A sang cực C. Như chúng ta có thể thấy từ giải pháp trên, số lượng di chuyển cần thiết cho 3 đĩa = 8. Vì vậy, một công thức tổng quát cho tổng số lượng di chuyển chúng ta cần là: Tổng số di chuyển = n2 & nbsp; - 1 Trong đó ’n, là tổng số không. của đĩa. Giải quyết vấn đề của Hà Hà hội ở Pythondef TowerOfHanoi(n , s_pole, d_pole, i_pole): if n == 1: print("Move disc 1 from pole",s_pole,"to pole",d_pole) return TowerOfHanoi(n-1, s_pole, i_pole, d_pole) print("Move disc",n,"from pole",s_pole,"to pole",d_pole) TowerOfHanoi(n-1, i_pole, d_pole, s_pole) n = 3 TowerOfHanoi(n, 'A', 'C', 'B') # A, C, B are the name of poles Trong mã trên, chúng tôi gọi chức năng của chúng tôi TowerofHanoi đã đệ quy cho 3 đĩa. Here:
Đầu ra của mã trên là: Sự kết luậnVì vậy, đây là cách chúng tôi giải quyết vấn đề của Tháp Hà Nội. Mã này có thể được khái quát cho bất kỳ số lượng đĩa. Vì vậy, nếu bạn muốn giải pháp cho 4 đĩa, chỉ cần thay đổi giá trị của n từ 3 thành 4 là n = 4 và đầu ra sẽ được hiển thị cho 4 đĩa, v.v. Tháp Hà Nội là gì trong Python?Tower of Hà Nội là một câu đố toán học nơi chúng tôi có ba thanh và đĩa N. Mục tiêu của câu đố là di chuyển toàn bộ ngăn xếp sang một thanh khác, tuân theo các quy tắc đơn giản sau: 1) Chỉ có thể di chuyển một đĩa một lần.a mathematical puzzle where we have three rods and n disks. The objective of the puzzle is to move the entire stack to another rod, obeying the following simple rules: 1) Only one disk can be moved at a time.
Công thức cho Tháp Hà Nội là gì?Tháp ban đầu của câu đố Hà Nội, được phát minh bởi nhà toán học người Pháp Edouard Lucas vào năm 1883, kéo dài "cơ sở 2". Đó là - số lượng di chuyển của số đĩa K là 2^(K -1) và tổng số lượng di chuyển cần thiết để giải câu đố với các đĩa n là 2^n - 1.the number of moves of disk number k is 2^(k-1), and the total number of moves required to solve the puzzle with N disks is 2^N - 1.
Làm thế nào để bạn viết một thuật toán cho vấn đề Tháp Hà Nội?Để viết một thuật toán cho Tháp Hà Nội, trước tiên chúng ta cần học cách giải quyết vấn đề này với số lượng ít hơn, giả sử → 1 hoặc 2 ... Đầu tiên, chúng tôi di chuyển đĩa nhỏ hơn (trên cùng) sang AUX PEG .. Sau đó, chúng tôi di chuyển đĩa lớn hơn (dưới cùng) đến PEG đích .. Và cuối cùng, chúng tôi di chuyển đĩa nhỏ hơn từ AUX sang điểm đến PEG .. Tháp Hà Nội có Python có bao nhiêu động tác?Thuật toán để giải quyết câu đố Hà Nội bằng cách sử dụng đệ quy: 1. if (n = 1) thì // chuyển một đĩa duy nhất ghi "dịch chuyển đơn từ" SRC "sang" Dest khác // chuyển đĩa N-1 đệ quy A) N-1, SRC, Dest, Int) B) Dest
Tháp Hà Nội giải thích nó với n 3 là gì?Tháp Hà Nội là một câu đố toán học nơi chúng tôi có ba que (A, B và C) và N đĩa.Ban đầu, tất cả các đĩa được xếp chồng lên nhau với giá trị của đường kính, tức là, đĩa nhỏ nhất được đặt trên đỉnh và chúng nằm trên thanh A.a mathematical puzzle where we have three rods (A, B, and C) and N disks. Initially, all the disks are stacked in decreasing value of diameter i.e., the smallest disk is placed on the top and they are on rod A.
Làm thế nào để bạn thực hiện một tìm kiếm tuyến tính trong Python?Khái niệm tìm kiếm tuyến tính.. Bước - 1: Bắt đầu tìm kiếm từ phần tử đầu tiên và phím kiểm tra = 7 với mỗi phần tử của danh sách X .. Bước - 2: Nếu tìm thấy phần tử, hãy trả về vị trí chỉ mục của khóa .. Bước - 3: Nếu không tìm thấy phần tử, phần tử trở lại không có mặt .. Program.. Output:. Explanation:. |