Tải bản đầy đủ (.doc) (13 trang)

Trình bày về nội dung vận dụng những kiến thức về phương pháp luận, sáng tạo để giải quyết một vấn đề nào đó trong tin học.

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (129.45 KB, 13 trang )

Tài liệu: Docs.vn Hỗ trợ : Y!M minhu888
Trường Đại học Công Nghệ Thông Tin
Đại học Quốc gia Hồ Chí Minh
------------------
Bộ môn:
Phương pháp luận sáng tạo khoa học
Bài luận :
Trình bày về nội dung vận dụng những kiến
thức về phương pháp luận, sáng tạo để giải
quyết một vấn đề nào đó trong tin học.
GVHD: GS.TSKH Hoàng Văn Kiếm Sinh viên: Nghiêm Xuân Hiệp
MSSV: 06520155
Khoa: MMT&TT 01
Tài liệu: Docs.vn Hỗ trợ : Y!M minhu888
I. Bài toán :
Trong bài toán Josephus, một nhóm binh sĩ bị kẻ thù bao vây và một
binh sĩ được chọn để đi cầu cứu. Việc chọn thực hiện theo cách sau: Một số
nguyên n và một binh sĩ được chọn một cách ngẫu nhiên. Các binh sĩ được
sắp xếp theo vòng tròn, và họ đếm bắt đầu từ binh sĩ được chọn ngẫu nhiên.
Khi đạt đến n, binh sĩ tương ứng được lấy ra khỏi vòng và việc đếm lại bắt
đầu từ binh sĩ tiếp theo. Quá trình này cứ tiếp tục cho đến khi chỉ còn lại một
binh sĩ. Đó là người sẽ được chọn để đi cầu cứu. Viết thuật toán cài đặt cách
chọn và tìm ra binh sĩ sẽ được chọn.
Tài liệu: Docs.vn Hỗ trợ : Y!M minhu888
II. Giải quyết bài toán:
1. Phân tích bài toán:
Các binh sĩ được sắp xếp đứng thành vòng tròn và có thứ tự lần lượt từ
1 đến m (với m là số binh sĩ).
Binh

3


Binh

2
Binh

6
Binh

5
Binh

4
Binh

1
Binh

7
Binh

m
Binh

…..
Tài liệu: Docs.vn Hỗ trợ : Y!M minhu888
: Binh sĩ thứ n bị loại ra.
Chọn n là một số ngẫu nhiên và chọn một binh sĩ ngẫu nhiên
(n nguyên dương)
Binh sĩ
3

Binh sĩ
2
Binh sĩ
6
Binh

2
Binh

5
Binh

4
Binh

1
Binh

7
Binh

m
Binh

…..
Chọn n = 3
Binh sĩ thứ 2 được
chọn ngẫu nhiên
Binh sĩ thứ 4 sẽ bị loại
sau khi đếm đến n.

Binh sĩ thứ 7 sẽ bị loại
sau khi đếm đến n.
Tài liệu: Docs.vn Hỗ trợ : Y!M minhu888
- Chọn n là một số ngẫu nhiên và chọn một binh sĩ ngẫu nhiên
(n nguyên dương).
- Đếm lần lượt từ vị trí binh sĩ ngẫu nhiên đầu tiên được chọn cho đến
vị trí của binh sĩ thứ n thì loại binh sĩ đó ra, và tiếp tục đếm từ binh sĩ kế tiếp
cho đến vị trí thứ n tiếp theo.....
- Khi đó binh sĩ nào là người cuối cùng còn lại sẽ là người được chọn
để đi cầu cứu.
2. Giải quyết vấn đề - bài toán trong tin học:
Đối với bài toán này, điều ta quan tâm là số lượng các binh sĩ, số thứ
tự các binh sĩ, số thứ tự của binh sĩ đầu tiên được chọn, một số n nguyên
dương ngẫu nhiên với điều kiện n phải nhỏ hơn hoặc bằng số lượng các binh
sĩ, và cuối cùng là tìm ra phần tử (binh sĩ) cuối cùng.
 Dùng phương pháp trực tiếp cùng với các nguyên lý, nguyên tắc để giải
quyết bài toán trên.
- Đặc điểm của cách giải quyết này là đều xác định trực tiếp được
lời giải qua một thủ tục tính toán (công thức, hệ thức, định luật,…)
hoặc qua các bước căn bản để có được lời giải. Đối với phương
pháp này, việc giải quyết bài toán trên máy tính chỉ là thao tác lập
trình hay là sự chuyển đổi lời giải từ ngôn ngữ bên ngoài sang các
ngôn ngữ được sử dụng trong máy tính.
- Với bài toán này, ta sẽ dùng ngôn ngữ lập trình thông dụng là C để
giải quyết bài toán trên máy tính.
Để thực hiện tốt phương pháp trực tiếp, chúng ta áp dụng các nguyên lý sau:
a) Nguyên lý 1:

Chuyển đổi dữ liệu bài toán thành dữ liệu của chương trình, có
nghĩa là “Dữ liệu của bài toán sẽ được biểu diễn lại dưới dạng các

×