Vì kích thước đầu vào là 1 và bạn đang sử dụng Python 2, vấn đề đầu tiên là bạn đang tạo một danh sách các số nguyên 10**6 không cần thiết chỉ để thực hiện một vòng lặp Show Thay vào đó, bạn nên sử dụng 2 để tạo ra số nguyên một cách lười biếng
Một tối ưu hóa vi mô nhỏ khác mà bạn có thể thực hiện ở đây là sử dụng 3 với 4. 4 là một singleton, vì vậy, chỉ có một 4 duy nhất từng tồn tại trong bộ nhớ và nó là đối tượng nhỏ nhất trong CPython, mặt khác, việc tạo ra 10**6 số nguyên rất tốn kém (CPython cũng lưu trữ một số trong số chúng, nhưng chúng vẫn không cần thiết ở đây)
Vì chúng tôi đang sử dụng các hàm như 2, 3 nhiều lần trong mã của mình, tốt hơn hết là lưu trữ chúng dưới dạng biến cục bộ, vì nếu không, chúng tôi sẽ tìm kiếm chúng ít nhất 1 lần trong từ điển chung. Một cách để lưu chúng vào bộ đệm là sử dụng chúng làm giá trị mặc định cho các thuộc tính chức năng
Thay vì bắt đầu giá trị kết quả bằng 5, chúng ta chỉ cần bắt đầu bằng 0 và chúng ta cũng có thể ngăn việc tạo danh sách 15 mục đơn giản đó
Hiện tại giải pháp đầu tiên của bạn mất khoảng 7. 44 giây trên hệ thống của tôi và giải pháp của tôi mất khoảng 5. 6 giây, không phải là một cải tiến lớn
Lưu ý rằng trong giải pháp trên, chúng tôi đang ghi vào thiết bị xuất chuẩn ngay lập tức, nếu chúng tôi có thể lưu trữ tạm thời đầu ra trong một danh sách (giả sử 1000 mục) và chúng ghi chúng cùng một lúc thì giải pháp trên mất 5. 52 giây Giả sử chúng ta có hai mảng arr1 và arr2. Tổng XOR của một danh sách là XOR theo bit của tất cả các phần tử của nó. Nếu danh sách chỉ có một phần tử, thì tổng XOR của nó sẽ là chính phần tử đó. Bây giờ, hãy xem xét danh sách có kết quả là mảng1[i] AND mảng2[j] (theo bit AND) cho mọi cặp chỉ mục (i, j) trong đó 0 <= i < độ dài của mảng1 và 0 <= j < độ dài của mảng2. Chúng ta phải tìm tổng XOR của danh sách đó Vì vậy, nếu đầu vào giống như mảng1 = [5,3,4] mảng2 = [2,6], thì đầu ra sẽ là 0 vì danh sách là [5 AND 2, 5 AND 6, 3 AND 2, 3 AND 6 Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
Thí dụHãy cùng xem cách triển khai sau để hiểu rõ hơn ________số 8Đầu vào[5,3,4], [2,6] đầu ra 0Cập nhật ngày 08-Oct-2021 08. 24. 37 Bài viết này sẽ giúp bạn khám phá cách chúng ta có thể thực hiện thao tác XOR theo bit bằng ngôn ngữ lập trình Python Python XORToán tử Python XOR hoặc 'độc quyền hoặc' cho phép chúng ta so sánh hai số nhị phân theo bit Người điều hành rất đơn giản. Nó trả về 0 nếu cả hai bit giống nhau và 1 nếu ngược lại Toán tử cũng sẽ đặt bit đầu vào thành 1 nếu một trong các bit tương tự trong toán hạng bằng 1 Trong Python, chúng ta chủ yếu sử dụng toán tử bitwise two để so sánh hai toán hạng số nguyên. Lưu ý rằng trước tiên toán tử sẽ chuyển đổi các số nguyên thành bit trước khi thực hiện so sánh Toán tử Python XORToán tử XOR trong Python được biểu thị bằng ký hiệu ^ Ví dụ – Số nguyênVí dụ: để thực hiện so sánh XOR theo bit trên hai số nguyên, chúng ta có thể chạy mã như được hiển thị int_a = 10 Trong ví dụ trên, chúng tôi bắt đầu bằng cách khai báo hai số nguyên và gán cho chúng các giá trị khác nhau Sau đó, chúng tôi sử dụng phương thức bin() để lấy biểu diễn nhị phân của hai số nguyên Cuối cùng, chúng tôi nhận được kết quả của hoạt động bitwise xor giữa hai số nguyên và in nó Đoạn mã trên sẽ trả về $ Python xor. py Lưu ý rằng toán tử sẽ trả về một số nguyên nếu hai toán hạng là số nguyên ví dụ 2Mặt khác, nếu toán hạng được cung cấp là giá trị Boolean, toán tử sẽ trả về giá trị Boolean Một ví dụ minh họa được hiển thị dưới đây a = Đúng Trong ví dụ này, chúng tôi đặt các biến là kiểu Boolean với True được biểu thị bằng 1 và Sai được biểu thị bằng 0 Chạy đoạn mã trên sẽ trở lại trăn xor. py Python XOR sử dụng Mô-đun toán tửBạn có biết rằng Python có mô-đun toán tử không? . Nó là một phần của thư viện chuẩn Python và chứa một tập hợp các toán tử logic được xuất dưới dạng các hàm Nó chứa các toán tử như nhỏ hơn, nhỏ hơn hoặc bằng, bằng và nhiều toán tử khác Bạn có thể tìm hiểu thêm trong tài nguyên dưới đây https. // tài liệu. con trăn. org/3/library/operator. html Một chức năng trong mô-đun toán tử là chức năng XOR. Cú pháp như hình bên dưới toán tử . xor( a , b . ) Hàm nhận hai giá trị và trả về xor theo bit của hai giá trị Để sử dụng chức năng, chúng ta có thể chạy một mã ví dụ như được hiển thị >>> từ toán tử nhập xor Trong ví dụ trên, chúng tôi bắt đầu bằng cách nhập hàm xor từ mô-đun toán tử Sau đó, chúng tôi xác định hai biến kiểu Boolean và thực hiện loại trừ bitwise hoặc. Giá trị kết quả được hiển thị ở trên Sự kết luậnTrong bài viết này, chúng ta đã học cách thực hiện XOR bitwise trong Python bằng cách sử dụng toán tử ^ và hàm xor. Tiếp tục thực hành để khám phá cách toán tử bitwise hoạt động với các đầu vào khác nhau Bạn có thể XOR 2 liệt kê Python không?Chương trình Python để thực hiện XOR trên hai danh sách
. Tất cả các phần tử ở dạng thập phân và đầu ra cũng ở dạng thập phân. ” ^ ” đang sử dụng cho 'độc quyền hoặc' trong python. Using the zip module to use simultaneous value each from the list. All elements are in Decimal and output is also in Decimal. ” ^ ” is using for 'exclusive or' in python.
Danh sách liên kết XOR trong Python là gì?Danh sách liên kết kép hiệu quả bộ nhớ này được gọi là Danh sách liên kết XOR hoặc Hiệu quả bộ nhớ vì danh sách sử dụng thao tác XOR theo bit để tiết kiệm dung lượng cho một địa chỉ. Trong danh sách liên kết XOR, thay vì lưu trữ địa chỉ bộ nhớ thực tế, mỗi nút lưu trữ XOR địa chỉ của nút trước và nút tiếp theo.
XOR có nghĩa là gì trong Python?Bitwise XOR đặt các bit trong kết quả thành 1 nếu một trong hai, nhưng không phải cả hai, của các bit tương ứng trong hai toán hạng là 1 |