Tên người dùng: Mật mã:
Câu lạc bộ sinh viên

TIN TỨC

Sách Bài giảng (ebook) các môn học đã có

Tra cứu điểm các môn học|Hướng dẫn

Các bài thi thử trắc nghiệm trực tuyến

Ngân hàng đề thi các môn học



Go Back   Câu lạc bộ sinh viên > Góc học tập > Sinh viên với NCKH

Gởi Ðề Tài Mới  Trả lời
 
Ðiều Chỉnh Xếp Bài
  #1  
Old 01-20-2007
dinhhang's Avatar
dinhhang dinhhang is offline
Moderator
 
Tham gia ngày: Nov 2005
Nơi Cư Ngụ: Bangladesh
Bài gởi: 897
Thanks: 8
Thanked 225 Times in 124 Posts

Level: 26 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Life: 0 / 643
Magic: 299 / 24542
Experience: 74%

Send a message via ICQ to dinhhang Send a message via Yahoo to dinhhang Send a message via Skype™ to dinhhang
Default



Đề thi MATLAB Contest ngày 2/11 - 9/11/2005

một phiên bản phát triển của trò chơi Sudoku.

Đây là luật chơi:
http://www.mathworks.com/contest/sudoku/rules.html
Bản dịch:

Chúng ta có thể đã biết luật chơi Sudoku kiểu truyền thống: có một hình vuông 9x9 được chia thành 9 hình vuông nhỏ kích thước 3x3, trong 81 ô đó người ta điền trước một số ô với các số nguyên từ 1 đến 9.

Nhiệm vụ: chúng ta điền số (từ 1 đến 9) vào các ô còn lại, sao cho trong bất kỳ hàng, cột hay hình vuông 3x3 nào, đều không bị lặp số.

Ở cuộc thi MATLAB Contest này, họ đưa ra đề thi khó hơn nhiều:
i/. Ô Sudoku có n^2 x n^2 ô vuông nhỏ! (mỗi cạnh sẽ là n^2 ô)

ii/. Các số được điền vào không chỉ là số nguyên, mà là số thực .

iii/. Nhiệm vụ: từ một dãy số thực cho trước, chúng ta điền các số vào những ô còn lại (dãy cho trước có thể có nhiều số, không bắt buộc phải dùng cho hết, mỗi số có thể dùng nhiều lần). Mục tiêu điền là như sau:

iv/. Mục tiêu: làm sao cho tổng các số mỗi hàng dọc, hàng ngang, khu vực nhỏ nxn ô là chênh lệch nhau ít nhất. Theo cách tính: lấy trung bình cộng (avarage_sum) của các tổng này, rồi tính độ lệch tuyệt đối của từng tổng so với avarage_sum.

Ví dụ: với n=2.

Người ta cho trước đề bài bằng một ma trận 4x4:
aInit = [ 0 0 2 0 ;
1.7 0 0 4.1 ;
0 0 0 0 ;
1 0 2.8 0 ]





Người ta cũng cho trước 1 vector, trong đây lưu mảng các số mình có thể dùng:
x = [ 4 3 3 1.2 ...
1 3 2 4 ...
1 4 2 7 ...
5 0.5 4.3 ] ;

Đây là đáp án theo họ là "tốt nhất": (có vài số trong vector x không dùng đến)






Ở đó, ta thấy tổng từng bộ 4 số theo hàng, cột hoặc hình vuông nhỏ là gần bằng nhau. Người ta tính kết quả sai lệch như sau:

- Tổng trung bình: avarage_sum = sum(ma trận a)/4
(ma trận a phân chia theo hàng/cột/khối vuông nhỏ đều có 4 bộ, mỗi bộ 4 số)

- Sai lệch
= sum(giá trị tuyệt đối(tổng từng hàng - avarage_sum)) + ...
+ sum(giá trị tuyệt đối(tổng từng cột - avarage_sum)) + ...
+ sum(giá trị tuyệt đối(tổng khối 4x4 - avarage_sum))

=> ở ví dụ này, sai lệch đó là 1.8.

Nếu bạn làm sao để sai lệch là 0, thì đó là lời giải hoàn hảo. Còn nếu không thể, thì hãy lập trình để đạt được lời giải có sai lệch ít nhất.

---

Để tham gia cuộc thi này, bạn phải lập trình 1 chương trình MATLAB (dùng các hàm cơ bản), nhận 2 giá trị đầu vào (là vector x và ma trận aInit), trả giá trị đầu ra là ma trận a (đã điền đầy đủ).

Chương trình của bạn sẽ được kiểm tra với một bộ các đề bài cho sẵn (các hình vuông 81 ô, tức là n=3), và điểm của bạn là tổng của các giá trị sai lệch khi dùng chương trình để giải từng bài. Cuối cuộc thi, ai đạt điểm này thấp nhất thì sẽ giành chiến thắng.

MATLAB cho sẵn một file .zip có ví dụ quy định kiểu file, có một file test_suite gồm các đề bài được cho sẵn, có một file runcontest để kiểm tra kết quả. Các bạn download ở địa chỉ: http://doanhiep.com/~olympia/olympeek/03/M...test_Sudoku.zip---

__________________
Đường đi khó không phải vì ngăn sông cách núi
Mà chỉ sợ lòng người ngại núi e sông
dinhhang1981@gmail.com
Trả Lời Với Trích Dẫn
  #2  
Old 01-20-2007
dinhhang's Avatar
dinhhang dinhhang is offline
Moderator
 
Tham gia ngày: Nov 2005
Nơi Cư Ngụ: Bangladesh
Bài gởi: 897
Thanks: 8
Thanked 225 Times in 124 Posts

Level: 26 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Life: 0 / 643
Magic: 299 / 24542
Experience: 74%

Send a message via ICQ to dinhhang Send a message via Yahoo to dinhhang Send a message via Skype™ to dinhhang
Default

Có bạn nào yêu thích game soduko ko? Chơi trò này thư giãn rất tốt đồng thời cái đầu mình cũng phải phát huy tối da sjư tập trung và tính toán chính xác nữa. Ai muốn tập chơi vào trang http://gamevui.com thử sức nhé. Thỉnh thoản trên báo hoa học trò cũng có mấy trờ thử tài đố vui giải ô soduko này, bạn nào có thời gian sưu tập về ngồi giải. Cũng là 1 cách giải trí nhẹ nhàng mà cái đầu được phát huy "trí tuệ"
__________________
Đường đi khó không phải vì ngăn sông cách núi
Mà chỉ sợ lòng người ngại núi e sông
dinhhang1981@gmail.com
Trả Lời Với Trích Dẫn
Gởi Ðề Tài Mới  Trả lời


Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
Bạn không được quyền gởi bài
Bạn không được quyền gởi trả lời
Bạn không được quyền gởi kèm file
Bạn không được quyền sửa bài

vB code đang Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Chuyển đến



Powered by: vBulletin Version 3.6.7 Copyright © 2000 - 2018, Jelsoft Enterprises Ltd.
Múi giờ GMT. Hiện tại là 08:29 AM.