Hàm nào dùng để hoán đổi hai số Python?

Trong lập trình, hoán đổi ngôn ngữ có nghĩa là hoán đổi giá trị của hai biến. Biến có thể chứa một số, chuỗi, danh sách hoặc mảng, đối tượng, v.v. Cách hoán đổi chung là sử dụng một biến tạm thời để giữ các giá trị. Ví dụ,

Hàm nào dùng để hoán đổi hai số Python?

Các bước chung để hoán đổi hai số là

  • Khai báo biến tạm thời C
  • Gán giá trị của A cho C, nghĩa là C = A. Bây giờ C = 20
  • Gán giá trị của B cho A, Vậy A = 30
  • Gán giá trị của C cho B, Vậy B = 20, vì C có giá trị 20

Đó là cách hoán đổi được thực hiện với sự trợ giúp của một biến tạm thời. Phương pháp này cũng sẽ hoạt động cho cả số nguyên và số float

Trong hướng dẫn này, bạn sẽ học

  • Hoán đổi bằng phương trình số học
  • Hoán đổi sử dụng Toán tử Bitwise XOR
  • Hoán đổi số bằng Bitwise-Arithmetic
  • Tràn số học là gì?

Hoán đổi bằng phương trình số học

Như chúng ta đã biết, hoán đổi có nghĩa là trao đổi nội dung của hai đối tượng hoặc trường hoặc biến. Hoán đổi sử dụng phép toán số học nghĩa là thực hiện phép hoán đổi sử dụng phương trình toán học, i. e. , cộng và trừ

Nếu chúng tôi được cung cấp hai số và được yêu cầu hoán đổi mà không sử dụng biến tạm thời, thì sử dụng ba phương trình số học, chúng tôi có thể hoán đổi các số

Mã giả để đổi số bằng phép toán số học

A = A + B
B = A - B
A = A - B

Giả sử chúng ta có hai số, A = 20 và B = 30

Điều kiện 1. A = A+B

Vì vậy, giá trị hiện tại của A là 20+30 = 50

Điều kiện 2. B = A-B

                   Bây giờ, B = 50-30 = 20
                   Chúng ta có thể thấy rằng chúng ta đã nhận được giá trị của A trong B

Điều kiện 3. A = A-B

                   Cuối cùng, A = 50-20 = 30
                   A có giá trị ban đầu là B.

Vì vậy, chúng tôi chỉ trao đổi các số

Đây là chương trình hoán đổi hai số trong C/C++

#include
int main()
{
	int a, b;
	printf("Enter value of A: ");
	scanf("%d", & a);
	printf("Enter value of B: ");
	scanf("%d", & b);
	printf("A = %d, B = %d", a, b);
	a = a + b;
	b = a - b;
	a = a - b;
	printf("\nNow, A = %d, B = %d", a, b);
}

đầu ra

Enter value of A: 20
Enter value of B: 30
A = 20 , B = 30
Now, A = 30 , B = 20

Chương trình trong Python

a = int(input("Enter value of A: "))
b = int(input("Enter value of B: "))
print("A = {} and B = {}".format(a, b))
a = a + b
b = a - b
a = a - b
print("Now, A = {} and B = {}".format(a, b))

đầu ra

Enter value of A: 20
Enter value of B: 30
A = 20 , B = 30
Now, A = 30 , B = 20

Bây giờ trong Python, chúng ta thậm chí không cần thực hiện các phép toán số học. chúng ta có thể sử dụng

a,b = b,a

Đây là minh họa trong đó a=20, b=30;

Hàm nào dùng để hoán đổi hai số Python?

Hoán đổi sử dụng Toán tử Bitwise XOR

Phương pháp này còn được gọi là hoán đổi XOR. XOR có nghĩa là độc quyền HOẶC. Chúng tôi lấy hai bit làm đầu vào cho XOR trong thao tác theo bit này. Để có một đầu ra từ XOR, chỉ một đầu vào phải là 1. Nếu không, đầu ra sẽ là 0. Bảng sau đây hiển thị đầu ra cho tất cả các kết hợp đầu vào A B

Chúng ta cần biết thao tác XOR hoạt động như thế nào để hoán đổi hai số bằng thao tác bitwise. Đây là bảng cho XOR trong đó A và B là giá trị đầu vào

ABA XOR B000011101110

Nếu hai đầu vào có cùng giá trị, thì phép toán XOR cho kết quả 0; . Đối với ví dụ này, chúng tôi sẽ sử dụng thao tác 3 XOR. Trong hầu hết các ngôn ngữ lập trình, XOR được ký hiệu là “^”

Giả sử A=4 (ở dạng nhị phân = 0100) và B=7 (ở dạng nhị phân, 0111)

Điều kiện 1. Một = Một ^ B

A0100B0111A^B0011

Bây giờ, A = 0011 (ở dạng nhị phân)

Điều kiện 2. B = A^B

A0011B0111A^B0100

Vậy B = 0100, là giá trị nhị phân ban đầu của A

Điều kiện 3. A = A^B

A0011B0100A^B0111

Cuối cùng, A = 0111, là giá trị nhị phân tương đương của B

Chương trình trong C/C++

#include
int main()
{
	int a, b;
	printf("Enter value of A: ");
	scanf("%d", & a);
	printf("Enter value of B: ");
	scanf("%d", & b);
	printf("A = %d, B = %d", a, b);
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	printf("\nNow, A = %d, B = %d", a, b);
}

đầu ra

Enter value of A:4
Enter value of B:7
A=4, B=7
Now, A=7, B=4.

Chương trình trong Python

a = int(input("Enter value of A: "))
b = int(input("Enter value of B: "))
print("A = {} and B = {}".format(a, b))
a = a ^ b
b = a ^ b
a = a ^ b
print("Now, A = {} and B = {}".format(a, b))

đầu ra

________số 8

Hoán đổi số bằng Bitwise-Arithmetic

Phương thức này giống như phương thức số học, nhưng chúng ta sẽ sử dụng các phép toán Bitwise như AND, OR và Compliment để thực hiện phép cộng và phép trừ. Trước khi đến các bước, hãy cùng xem qua “Lời khen” cho nhanh

Phần bù của 1 có nghĩa là thay đổi tất cả 0 thành 1 và 1 thành 0. Hãy lấy một ví dụ

  • Giả sử một số   23, một số thập phân
  • Chuyển đổi sang nhị phân sẽ sử dụng 10111. Chỉ có 5 bit, nhưng máy tính lưu trữ số trong 8,16,32,64. chút ít. Vì vậy, hãy thêm số 0 vào trước số nhị phân. Nó sẽ không thay đổi giá trị ban đầu của số. Vì vậy, nó sẽ trở thành 00010111
  • Như chúng ta đã biết, phần bù của 1 có nghĩa là đổi tất cả các số 0 thành 1 và 1 thành 0, vì vậy thực hiện phần bù 1 trên 00010111 sẽ được 11101000

Phần bù 1 này được thể hiện bằng ký hiệu “~” trong hầu hết các ngôn ngữ lập trình. Đặt ký hiệu này trước bất kỳ giá trị số nguyên hoặc giá trị dấu phẩy động nào sẽ cho phần bù 1

Và phần bù 2 có nghĩa là thêm nhị phân "1" vào phần bù 1. Nếu chúng ta thực hiện phần bù 2 cho số trên

  • Nhị phân = 00010111
  • phần bù của 1 = 11101000
  • phần bù của 2

11101000

+       1

11101001

Vậy phần bù của 2 là 11101001. Đây là nhị phân cho -23.
Tóm lại, để thực hiện phép cộng 2 của một số A, nó sẽ như sau.

phần bù 2 của A = (~A) + 1

Bây giờ, giả sử A=8 (nhị phân 00001000), B=10(00001010)

Điều kiện 1. A = (A & B) + (A. b)

Nó tương đương với A = A + B

A & B = 00001000 & 00001010 = 00001000

Một. B = 00001000. 00001010 = 00001010

Bây giờ, 00001000 + 00001010 = 00010010 (18 thập phân)

Vì vậy, A = 18

Điều kiện 2

B = A + (~B) + 1

Nó tương đương với B = A-B

Ở đây, B = A – B

Từ thảo luận trên, nếu cần thực hiện phép trừ, chúng ta thực hiện phép cộng 2 cho số âm rồi cộng

Hàm nào dùng để đổi chỗ hai số?

Hoán đổi số bằng hàm swap() trong C++ . hoán đổi () là một hàm tích hợp trong Thư viện mẫu chuẩn C++ (STL) hoán đổi giá trị của hai biến.

Việc sử dụng chức năng hoán đổi trong Python là gì?

Trong Python, bạn có thể dễ dàng hoán đổi giá trị mà không cần temp (biến tạm thời). Có thể hoán đổi giá trị của các biến và hoán đổi giá trị (phần tử) trong danh sách .