30/09/2018, 16:11

Cách giải thích hay nhất cho thuật toán gán không cần biến tạm!

   a = a - b ;
   b = a + b ;
   a = b - a ;

Mọi người vào chém nào !

Gió viết 18:15 ngày 30/09/2018

1 số ngôn ngữ khác python,ruby,lua

a,b=b,a

nếu gán = cộng trừ có thể gây tràn số

Thực tế khắc nghiệt viết 18:17 ngày 30/09/2018

kakka! pác cứ giải thích theo cách hiểu của bác về cú pháp mình viết trên

Gió viết 18:17 ngày 30/09/2018

a = a - b ;
b = a + b ;
a = b - a ;

trong [ ] tượng trưng cho giá trị hiện tại của biến

[a-b] [b]
[a-b] [(a-b) +b]
[(a-b)+b-(a-b)] [(a-b)+b]
Thực tế khắc nghiệt viết 18:27 ngày 30/09/2018

sẽ giải đáp vào cuối topic ngày mai vậy

viết 18:11 ngày 30/09/2018

Thêm một cách ngắn gọn để mọi người tìm hiểu thêm (post ké topic phát đỡ phải tạo):

a ^= b ^= a ^= b;

Thực tế khắc nghiệt viết 18:27 ngày 30/09/2018

giá trị a^ = b;
giá trị b^ = a^ = b;
giá trị a^=b;

Sáng Béo viết 18:13 ngày 30/09/2018

eo, mấy thím post nhìn hoa mắt quá, e chả hiểu gì. T.T

Quân viết 18:19 ngày 30/09/2018

Cứ dùng thêm 1 biến cho rõ con nhà bà ràng
Giờ máy tính bộ nhớ nhiều lắm, không phải lo tốn bộ nhớ

Nguyễn Minh Dũng viết 18:25 ngày 30/09/2018

Haha, hôm trước mới thấy cái hình nói về vụ này. hài vãi =))

Thực tế khắc nghiệt viết 18:25 ngày 30/09/2018

ko có cười nghen a Đạt! a giải thích đi! ko đc cười trừ

Nguyễn Minh Dũng viết 18:18 ngày 30/09/2018

Cái này dễ mà, giống toán cấp 1 ý. lấy giấy ra vẽ

ví dụ: a = 4, b = 3 đi

a: |—|---|—|---|
b: |—|---|—|

a = a - b;

a: |—|
b: |—|---|—|

b = a + b ;

a: |—|
b: |—|---|—|---|

a = b - a ;

a: |—|---|—|
b: |—|---|—|---|

nếu gán = cộng trừ có thể gây tràn số

Hợp lý, nhưng ở đây mình bắt đầu bằng phép trừ là an toàn rồi

Gió viết 18:17 ngày 30/09/2018

ví dụ char a=0,b=255. limit [0,255] thì a-b sẽ nằm ngoài=> lỗi chương trình ??

Thực tế khắc nghiệt viết 18:27 ngày 30/09/2018

a Đạt ác ghê! chúng ta sẽ cho đại 1 giá trị là đúng ở bước đầu tiên, bước thứ 2 ta sẽ cho b = a và a = b
cứ theo tính toán mà đổi dấu nếu chuyển vế! có thể giảng dễ hiểu bằng cách cho 2 biến bằng 2 giá trị bất kỳ! chugns ta sẽ thấy rõ kết quả!

TTmagic viết 18:12 ngày 30/09/2018

tốt nhất tạo cái biến nữa đỡ phải cộng trừ không lo lỗi

Thực tế khắc nghiệt viết 18:26 ngày 30/09/2018

bạn gió! ở đây mình dùng đó như 1 hàm riêng đổi chỗ thôi mà! tràn số thì do giá trị ta truyền vào giá trị gì thôi! đấy là 1 thuật toán mẹo logic! mình cũng mới biết thôi

Nguyễn Minh Dũng viết 18:12 ngày 30/09/2018

Cái này làm cho vui vậy thôi chứ không ai dùng vì dùng biến tạm nhanh hơn, hiệu quả hơn, an toàn hơn hehe

Sáng Béo viết 18:16 ngày 30/09/2018

Cái này làm cho vui vậy thôi chứ không ai dùng vì dùng biến tạm nhanh hơn, hiệu quả hơn, an toàn hơn hehe

với cả dùng biến tạm thì có 1 cái lợi là mình đẹp trai nữa a ạ

Nguyễn Minh Dũng viết 18:23 ngày 30/09/2018

Hợp lý, 10 điểm về chỗ =))

Sáng Béo viết 18:13 ngày 30/09/2018

Hợp lý, 10 điểm về chỗ =))

e biết mà.

=====20 kí tự=====

Thực tế khắc nghiệt viết 18:27 ngày 30/09/2018

khuya rồi hại não quá! cố lên

Bài liên quan
0