Phải chăng đây là lý do lập trình luôn đếm từ 0

Một câu chuyện về Nhà toán học Wacław Sierpiński. Ông được biết đến bởi những đóng góp quan trọng trong lý thuyết tập hợp (nghe đâu vụ tập hợp là phần quan trọng trong lập trình, nhất là bên khoa học máy tính, em chưa học chưa biết), lý thuyết số, hàm số, … (công bố hơn 700 bài báo và 50 cuốn sách).
Mình cũng xài nhiều thành quả của ổng, và cũng có thuật toán mà IT mình dựa trên ổng, điển hình là Sierpiński Gasket hay là Sierpiński Triangle.
Thôi PR đủ rồi, đây là câu chuyện

Waclaw Sierpinski là một nhà toán học nổi tiếng người Ba Lan. Người ta kể lại rằng ông là người khá lơ đãng. Một hôm, ông và vợ ông phải chuyển nhà. Hai ông bà mang đồ đạc xuống để bên vệ đường rồi bà Sierpinski mới nói với chồng rằng “Bây giờ anh đứng đây coi chừng mười thùng đồ này cho em để em đi gọi taxi”. Vài phút sau bà quay lại thì ông nheo mắt nói với bà “Anh tưởng em nói với anh coi chừng mười thùng đồ, nhưng sao anh đếm chỉ thấy có chín thùng.” Bà vợ hốt hoảng tưởng là ông chồng mình lơ đãng để người ta trộm mất một thùng đồ, “Không, em chắc chắn là mười thùng mà!”, “Không, em đếm lại đi, anh vừa đếm xong, đúng là chín thùng. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9!”

Có lẽ nguyên nhân là do khi nghiên cứu về lý thuyết tập hợp, ông thường chơi khác người là lấy phần tử đầu tiên là phần tử thứ 0

1 Like

hehe, cái này chắc là không phải rồi. Bữa trước đọc ở đâu nói về vụ vùng nhớ mà anh lười quá không quan tâm nên đọc lướt. Nhưng đại ý của đoạn đó nói về việc quản lý vùng nhớ thì bắt đầu bằng số 0 sẽ thuận tiện hơn cho compiler.

Đây, đã tìm ra. Lý do là nếu mình để ý sẽ thấy con trỏ và mảng có mối liên hệ mật thiết với nhau. Nếu ta có con trỏ p trỏ tới mảng arr thì

p+0 tương đương với phần tử đầu tiên của arr
p+1 tương đương với phần tử thứ hai của arr

3 Likes

Vâng, không chắc chắn nên em mới để ở mục Fun

1 Like

Ừ, anh thấy mà :smile: mà cái này đúng là cũng vui mà cũng nhức đầu. Thời gian đầu học lập trình cứ bị nhầm hoài. Đến bây giờ thì nếu thấy ngôn ngữ nào bắt đầu bằng 1 là lại thấy khó, không muốn sử dụng.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?