nói chung là về pascal
#1
Đã gửi 06-07-2006 - 16:34
_thứ nhất : có ai có đề thi tin học quốc gia (cả bảng A và B) 2 năm gần đây ko?gửi cho tui nha.cám ơn rất rất nhiều.
_thứ hai: các bác thấy đệ quy trong pascal có khó xơi ko?
#3
Đã gửi 06-07-2006 - 21:46
Có đây:các bác cho tui hỏi chút nha:
_thứ nhất : có ai có đề thi tin học quốc gia (cả bảng A và B) 2 năm gần đây ko?gửi cho tui nha.cám ơn rất rất nhiều.
_thứ hai: các bác thấy đệ quy trong pascal có khó xơi ko?
http://www.lamdong.g...ng/dethi/11.HTM
Còn đề quốc gia thì đây:
http://www.lamdong.g...thi/11/DTQG.HTM
<!--fonto:Verdana--><span style="font-family:Verdana"><!--/fonto--><a href="http://diendantoanho...0&#entry168717" target="_blank">Hướng dẫn gõ công thức toán lên diễn đàn cho người mới</a><!--fontc--></span><!--/fontc--></div>
<br /><div align="center"><!--fonto:Verdana--><span style="font-family:Verdana"><!--/fonto--><a href="http://diendantoanho...howtopic=38505" target="_blank">Cách gõ công thức toán mới</a><br /><a href="http://diendantoanho...id=1&Itemid=18" target="_blank"><!--coloro:#008000--><span style="color:#008000"><!--/coloro--><b>Bạn có muốn gửi bài viết của mình lên trang chủ không?</b><!--colorc--></span><!--/colorc--></a><!--fontc--></span><!--/fontc--></div><br /><div align="center"><!--fonto:Courier New--><span style="font-family:Courier New"><!--/fonto--><!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo-->em=Console.ReadLine();Console.Write("Anh yêu {0}",em);<!--sizec--></span><!--/sizec--><!--fontc--></span><!--/fontc--></div>
#4
Đã gửi 22-09-2006 - 19:16
u đc học rồi hả?thấy có khó không?mà các bạn có tài liệu tin học nào về pascal không ?chỉ cho mình với
#5
Đã gửi 16-07-2007 - 20:48
#6
Đã gửi 16-07-2007 - 22:15
Books: Algorithms-Robert Sedgewick (Cẩm nang thuật toán-bản dịch)
Data structures and algorithms (Aho-Hoftcroft-Ullman) (kinh điển)
#7
Đã gửi 20-07-2007 - 07:15
Mình thấy không đúng lắm, cách dựa vào Stack để khử đệ quy chỉ là một trong những phương pháp khử đệ quy mà thôi. Hơn nữa, bài toán n! được người ta tính bằng phương pháp Quy hoạch động, chỉ đơn giản dùng 3 biến lưu trữ.Đệ quy không phụ thuộc ngôn ngữ lập trình. Nó xuất phát từ các giải thuật đệ quy (recursive algorithms) ví dụ tính n! hay dãy Fibonacci. Bạn có thể cài đặt không dùng đệ quy của Pascal mà dùng cấu trúc dữ liệu Stack. Cái này hình như các giáo trình tiếng Việt gọi là khử đệ quy. Đệ quy thực ra rất cồng kềnh, chỉ được cái là code ngắn. Bạn tìm hiểu sâu thêm sẽ có cái nhìn toàn diện.
Đệ quy rất không khả thi trong nhiều bài toán vì bộ nhớ cần cho đệ quy khá nhiều, chương trình đệ quy khó kiểm soát, nhưng cái bất lợi lớn nhất là rất nhiều trường hợp, đệ quy phải tính lại một giá trị đã tính ở các bước truớc đó rồi.
Mặc dù vậy, một số bài toán tin kinh điển như các bài NP-complete, bài toán người du lịch, các bài toán áp dụng phương pháp sinh hoặc các bài toán quay lui,... thì đệ quy kết hợp đặt cận là phương pháp cực kỳ hữu hiệu.
Mọi người hay quan niệm là đệ quy thường duyệt, code ngắn nhưng chương trình tốn nhiều bộ nhớ, chạy lâu, kỳ thực không phải như vậy. Đệ quy là một kỹ thuật được áp dụng cho nhiều thuật toán chứ không hoàn toàn là một thuật toán đơn lẻ. Những điều bất lợi cho đệ quy đem lại là do thuật toán mà chúng ta dùng đệ quy để thực thi, chứ không phải do đệ quy. Một trong 10 thuật toán hay nhất thế kỷ là QuickSort chẳng phải được cài đặt bằng đệ quy hay sao? Rất hiệu quả mà mạnh mẽ.
Các online judge hay: Sphere Online Judge - SPOJ Vietnam - TopCoder
#8
Đã gửi 20-07-2007 - 08:27
Đệ quy là một kỹ thuật được áp dụng cho nhiều thuật toán chứ không hoàn toàn là một thuật toán đơn lẻ. Những điều bất lợi cho đệ quy đem lại là do thuật toán mà chúng ta dùng đệ quy để thực thi, chứ không phải do đệ quy. Một trong 10 thuật toán hay nhất thế kỷ là QuickSort chẳng phải được cài đặt bằng đệ quy hay sao? Rất hiệu quả mà mạnh mẽ.
Người ta vẫn chú trọng Đệ quy vì Đệ quy là quả tim trong các nghiên cứu lý thuyết cũng như thực hành tính toán
<!--fonto:Verdana--><span style="font-family:Verdana"><!--/fonto--><a href="http://diendantoanho...0&#entry168717" target="_blank">Hướng dẫn gõ công thức toán lên diễn đàn cho người mới</a><!--fontc--></span><!--/fontc--></div>
<br /><div align="center"><!--fonto:Verdana--><span style="font-family:Verdana"><!--/fonto--><a href="http://diendantoanho...howtopic=38505" target="_blank">Cách gõ công thức toán mới</a><br /><a href="http://diendantoanho...id=1&Itemid=18" target="_blank"><!--coloro:#008000--><span style="color:#008000"><!--/coloro--><b>Bạn có muốn gửi bài viết của mình lên trang chủ không?</b><!--colorc--></span><!--/colorc--></a><!--fontc--></span><!--/fontc--></div><br /><div align="center"><!--fonto:Courier New--><span style="font-family:Courier New"><!--/fonto--><!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo-->em=Console.ReadLine();Console.Write("Anh yêu {0}",em);<!--sizec--></span><!--/sizec--><!--fontc--></span><!--/fontc--></div>
#9
Đã gửi 20-07-2007 - 12:08
Magus mô tả cách trình biên dịch thực thi đệ quy. Ý tôi là không làm thế trình biên dịch. Bạn chạy vòng lặp với cấu trúc stack i.e. không lưu toàn bộ variables, cũng không cần dùng lệnh go to, chỉ lưu cái biến giữ giá trị cơ bản của thuật toán. Một trong các bài tập hay là cài đặt reversed Polish notation (qua đây ta cũng biết cách máy tình thực hiện các phép toán-không hề có dấu ngoặc) và Quick sort bằng 2 cách đệ quy+không đệ quy.
Just for fun. Gửi các bạn bài của Edsger W. Dijkstra về câu lệnh go to
http://www.acm.org/classics/oct95/
Đây có lẽ là bài đầu tiên mà cũng là bài nổi tiếng nhất thuộc thể loại "considered harmful".
#10
Đã gửi 20-07-2007 - 15:39
Nếu thuật toán mà không phải là recursive thì không dùng được
recursive có phải là Recursive Maximum Likehood Estimation of Autoregressive Process của ông
Steven M. Key không anh? nếu có tài liệu ebook về thuật toán này thì anh send em cái
<!--fonto:Verdana--><span style="font-family:Verdana"><!--/fonto--><a href="http://diendantoanho...0&#entry168717" target="_blank">Hướng dẫn gõ công thức toán lên diễn đàn cho người mới</a><!--fontc--></span><!--/fontc--></div>
<br /><div align="center"><!--fonto:Verdana--><span style="font-family:Verdana"><!--/fonto--><a href="http://diendantoanho...howtopic=38505" target="_blank">Cách gõ công thức toán mới</a><br /><a href="http://diendantoanho...id=1&Itemid=18" target="_blank"><!--coloro:#008000--><span style="color:#008000"><!--/coloro--><b>Bạn có muốn gửi bài viết của mình lên trang chủ không?</b><!--colorc--></span><!--/colorc--></a><!--fontc--></span><!--/fontc--></div><br /><div align="center"><!--fonto:Courier New--><span style="font-family:Courier New"><!--/fonto--><!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo-->em=Console.ReadLine();Console.Write("Anh yêu {0}",em);<!--sizec--></span><!--/sizec--><!--fontc--></span><!--/fontc--></div>
#11
Đã gửi 21-07-2007 - 00:39
Stack là mô phỏng đệ quy!!!! Chứ không phải là chuyển bài toán đệ quy sang dạng khác để khử đệ quy!!! Bài toán dẫy Fibonaccy chẳng hạn, bây giờ ai người ta dùng đệ quy để giải, chỉ đưa ra đệ quy để hiểu nguyên lý thôi, còn người ta dùng quy hoạch động. Rất nhiều cấu trúc dữ liệu như Interval Tree cũng được cài đặt bằng đệ quy, chẳng ai dại gì mà đi khử đệ quy bằng Stack, hiệu quả không bằng mà tốn công cài đặt.Khử đệ quy thực chất là chúng ta phải làm công việc của một trình biên dịch đối với một thủ tục, đó là: Đặt tất cả các giá trị của các biến cục bộ và địa chỉ của chỉ thị kế tiếp vào ngăn xếp (Stack), quy định các giá trị tham số cho thủ tục và chuyển tới vị trí bắt đầu thủ tục, thực hiện lần lượt từng câu lệnh. Sau khi thủ tục hoàn tất thì nó phải lấy ra khỏi ngăn xếp địa chỉ trả về và các giá trị của các biến cục bộ, khôi phục các biến và chuyển tới địa chỉ trả về.Vậy anh nói rõ ra nếu ko dựa vào Stack thì còn cách nào khả quan hơn nữa?
Các online judge hay: Sphere Online Judge - SPOJ Vietnam - TopCoder
#12
Đã gửi 01-03-2008 - 07:47
Bài 1: Cho hai dãy số a, b độ dài bằng nhau. Gọi chi phí chọn cho một cặp số a[i], b[j] là |a[i] + b[j]|. Tìm các cặp số a[i], b[j] trong 2 dãy sao cho tổng chi phí chọn là nhỏ nhất.
Giới hạn: nhiều nhất có 1000 số mỗi dãy.
Bài 2: Cho một dãy các ô, mỗi ô ghi một số nguyên dương. (a[i] là số ghi ở ô thứ i). Giữa các ô có các đường nối độ dài 1 với quy tắc: nếu tồn tại 3 số i, j, k sao cho a[k] = a[i] + a[j] thì nối i đến k, j đến k (đường một chiều). Tìm đường đi dài nhất qua các ô này (đi qua các đường nối - tất nhiên).
Giới hạn: nhiều nhất có 10000 ô.
Bài 3: Cho một miếng sôcôla hình vuông, cạnh 2^k.
Ta bắt đầu cắt song song với các cạnh, đầu tiên cắt song song với cạnh ngang chia thành 2 phần bằng nhau, rồi gấp phần dưới chồng lên phần trên => thành 1 chồng.(kiểu gấp sách). Sau đó cắt song song với cạnh dọc chia thành 2 phần bằng nhau, rồi gấp phần bên phải lên chồng bên trái => thành 1 chồng.
Lặp lại cho đến khi chồng sôcôla có độ dài cạnh là 1 (các miếng hình vuông).
Vấn đề: cho trước hai ô (p, q), (u, v), hỏi sau khi cắt như trên thì 2 ô này nằm ở vị trí thứ mấy?
Giới hạn: k <= 40.
#13
Đã gửi 03-06-2008 - 17:28
Nè bạn, đây là đề và bài giải mấy bài toán bạn nói đến đó, cũng dễ hiểu lắmCó ai có bài giải mấy bài này không?help me
Bài 1: Cho hai dãy số a, b độ dài bằng nhau. Gọi chi phí chọn cho một cặp số a[i], b[j] là |a[i] + b[j]|. Tìm các cặp số a[i], b[j] trong 2 dãy sao cho tổng chi phí chọn là nhỏ nhất.
Giới hạn: nhiều nhất có 1000 số mỗi dãy.
Bài 2: Cho một dãy các ô, mỗi ô ghi một số nguyên dương. (a[i] là số ghi ở ô thứ i). Giữa các ô có các đường nối độ dài 1 với quy tắc: nếu tồn tại 3 số i, j, k sao cho a[k] = a[i] + a[j] thì nối i đến k, j đến k (đường một chiều). Tìm đường đi dài nhất qua các ô này (đi qua các đường nối - tất nhiên).
Giới hạn: nhiều nhất có 10000 ô.
Bài 3: Cho một miếng sôcôla hình vuông, cạnh 2^k.
Ta bắt đầu cắt song song với các cạnh, đầu tiên cắt song song với cạnh ngang chia thành 2 phần bằng nhau, rồi gấp phần dưới chồng lên phần trên => thành 1 chồng.(kiểu gấp sách). Sau đó cắt song song với cạnh dọc chia thành 2 phần bằng nhau, rồi gấp phần bên phải lên chồng bên trái => thành 1 chồng.
Lặp lại cho đến khi chồng sôcôla có độ dài cạnh là 1 (các miếng hình vuông).
Vấn đề: cho trước hai ô (p, q), (u, v), hỏi sau khi cắt như trên thì 2 ô này nằm ở vị trí thứ mấy?
Giới hạn: k <= 40.
De_bai_va_loi_giai_thi_quoc_gia_tin_hoc_2008.pdf 143.09K 33 Số lần tải
#14
Đã gửi 28-04-2009 - 18:55
1 người đang xem chủ đề
0 thành viên, 1 khách, 0 thành viên ẩn danh