Tải bản đầy đủ (.docx) (6 trang)

Pascal 26 Mot so bai tap Pascal hay

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 (81.31 KB, 6 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

Sơ đồ Tractenberg


Giáo s Jacob Tractenberg xây dựng một sơ đồ cho phép tính một cách nhanh chóng và
đơn giản tích 2 số ngun. Ví dụ, để tính 23*14 ta phải dựa trên bộ dữ liệu trung gian
12, 11 và 2. Các số trung gian này đợc gọi là bộ dữ liệu Tractenberg. Từ bộ dữ liệu
này, ta có thể dễ dàng suy ra tớch cn tỡm l 322.


Để hiểu về bộ dữ liệu Tractenberg, ta xÐt thªm mét sè vÝ dơ:


241304 ´ 32 => 8 12 6 11 11 16


6 => 7721728


527 ´ 463 => 21 48 55 38 20


=> 244001


3214 ´ 5643 => 12 19 34 43 29 28 15


=> 18136602


1245 ´ 8 => 40 32 16 8


=> 9960


Hãy xác định cách xây dựng bộ dữ liệu Tractenberg và từ bộ dữ liệu này xác định các
cặp thừa số cũng nh tớch ca chỳng.


<i>Dữ liệu: vào từ file văn bản MULTP.INP các số của 1 bộ dữ liệu Tractenberg, số lợng </i>


số không quá 50, ghi trên 1 hoắc nhiều dòng, các số trên 1 dòng cách nhau ít nhất 1


dấu cách.


<i>Kết quả: đa ra file văn bản MULTP.OUT thông tin dạng:</i>
<i><b>Thừa số I * Thừa số II = TÝch</b></i>


Mỗi dịng ứng với một kết quả khác nhau tìm đợc. Các thừa số khơng chứa số 0 khơng
có nghĩa ở đầu. Hai kết quả đợc coi là giống nhau, nếu chỉ khác nhau ở trình tự các
thừa số trong tích.


<i>VÝ dơ: </i>


MULTP.INP MULTP.OUT


8 12 6 11 11 16 6 <sub>241304*32=772172</sub>


8


chu kú tuÇn hoµn


Xét hàm F xác định trên tập các số nguyên từ 1 đến M ( M  32767) Giá trị của hàm
cũng nằm trong khoảng đó. Cho N số nguyên x1, x2, . . ., xN ( 1 < N  1000, 1  xi 


M, i). Ngêi ta xây dựng các véc tơ Vj nh sau:


V0 = x1, x2, . . ., xN


V1 = F(X1), F(X2), . . ., F(XN)


V2 = F(F(X1)), F(F(X2)), . . ., F(F(XN))



V3 = F(F(F(X1))), F(F(F(X2))), . . ., F(F(F(XN)))


. . . .


Vì tập giá trị của F là hữu hạn, nên đến một lúc nào đó dãy Vi sẽ lặp lại các giá trị của


mình. Hãy tìm độ dài của phần trớc khi xuất hiện chu kỳ và độ dài chu kỳ tuần hoàn
của dãy Vi.


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Dòng đầu tiên chứ số nguyên M,


Dòng thø 2 chøa M sè nguyªn F(1), F(2), . . . , f(M),
 Dßng thø 3 chøa sè nguyên N,


Dòng thứ 4 chứa N số nguyên x1, x2, . . ., xN


Các số trên 1 dòng cách nhau Ýt nhÊt 1 dÊu c¸ch.


<i>Kết quả: đa ra file văn bản CYCLE.OUT độ dài trớc chu trình và chu k trờn mt </i>


dòng, các số cách nhau ít nhất 1 dÊu c¸ch


<i>VÝ dơ:</i>


CYCLE.INP CYCLE.OUT


10 2 6


5 6 4 3 2 5 1 1 5 4
4



1 10 8 1


D·y sè


Ngêi ta xây dựng dÃy vô hạn các số A[1], A[2], . . . . theo quy t¾c sau:
 A[1] = 0,


 Giả thiết đã xây dựng đợc dãy A[1], A[2], . . ., A[3M<sub>]. Khi đó, các số A[3</sub>M<sub>+1],</sub>


A[3M<sub>+2], . . . ,A[3</sub>M+1<sub>] sẽ nhận các giá trị tơng ứng là A[3</sub>M<sub>] + 3</sub>M<sub>, A[3</sub>M<sub>-1]+3</sub>M<sub>, . . .</sub>


., A[1]+3M<sub>, A[1]+2*3</sub>M<sub>, A[2]+2*3</sub>M<sub>, . . . , A[3</sub>M<sub>]+2*3</sub>M<sub>.</sub>


Với số nguyên N cho trớc ( 1  N  1 000 000 000) hóy xỏc nh A[N].


<i>Dữ liệu: vào từ file văn bản NUMBER.INP, gồm không quá 50 dòng, mỗi dòng mét sè</i>


nguyªn N.


<i>Kết quả: đa ra file văn bản NUMBER.OUT các số A[N] tìm đợc, mỗi số trên 1 dịng.</i>


VÝ dụ:


NUMBER.INP NUMBER.OUT


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Đục lỗ


Cho tờ giấy kẻ ca rô kích thớc 2N<sub> * 2</sub>N<sub> ô mỗi chiÒu ( 3  N  500). Ngêi ta gËp tê</sub>



giấy này N-3 lần, mỗi lần gập nh sau: gấp mép dới lên mép trên để mặt trớc đè lên
nhau, sau đó gấp mép phải đè lên trên mép trái. Nh vậy, sau mỗi lần gấp kích thớc mỗi
chiều của tờ giấy giảm đi một nữa. Kết quả cuối cùng ta có xếp giấy kích thớc 8*8.
Bằng máy dập, ngời ta đục một số ô của xếp giấy đồng thời ở tất cả các lớp. Hãy xác
định, sau khi mở lại tờ giấy, ta có bao nhiêu phần rời nhau, biết rằng 2 ơ dính với nhau
khi chúng có ớt nht 1 cnh chung.


<i>Dữ liệu: vào từ file LIST.INP:</i>


Dòng đầu tiên chứa số nguyên N,


8 dũng sau, mỗi dịng chứa 8 số 0 hoặc 1, trong đó 1 là ô bị đục. Các số cách nhau
1 dấu cỏch.


<i>Kết quả: đa ra file LIST.OUT 1 số nguyên cho biết có bao nhiêu phần rời nhau.</i>
<i>Ví dụ: </i>


LIST.INP LIST.OUT


4 11


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Đẳng cấu
Xét một đồ thị có hớng N đỉnh với các tính chất sau:


 Giữa 2 đỉnh u và v khác nhau tồn tại đúng 1 cung có hớng nối chúng,


 Khơng tồn tại cung nối trực tiếp một đỉnh với chính nó, tức là khơng tồn tại đỉnh
kiểu u  u.


Các đỉnh của đồ thị đợc đánh số từ 1 đến N. P là một hoán vị của các số từ 1 tới N.


Hoán vị P gọi là đẳng cấu với 2 đỉnh u và v, nếu hớng của cung (u,v) trùng với hớng
của cung (P(u), P(v)) trong đồ thị này.


Với một đồ thị và một hoán vị P cho trớc, ta có T đồ thị đẳng cấu đối với P.


Ví dụ: với N = 4 và P(1) = 2, P(2) = 4, P(3) = 3, P(4) = 1, tồn tại 4 đồ thị đẳng cấu ( T
= 4):


<i>Yêu cầu: Với một đồ thị và một hoán vị P cho trớc, hãy xác định T mod 100.</i>


<i>D÷ liệu: vào từ file văn bản AUT.INP:</i>


Dòng đầu tiên chøa sè nguyªn N, ( 0 < N  10 000),


Các dòng sau chứa các số nguyên P(1), P(2), . . . ,P(N), ghi trên 1 hoặc nhiều
dòng, các số trên 1 dòng cách nhau ít nhất 1 dấu cách.


<i>Kết quả: đa ra file văn bản AUT.OUT phÇn d cđa phÐp chia T cho 4.</i>
<i>VÝ dụ: </i>


AUT.INP AUT.OUT


4 4


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Cây nhị phân


Xột cây nhị phân. Cây có thể rỗng hoặc có một số đỉnh. Mỗi đỉnh của cây có khơng
q 2 cây con. Đỉnh không thuộc một cây con nào đợc gọi là gốc. Mỗi đỉnh chứa một
chữ cái tiếng Anh khác nhau. Cây đợc gọi là Cây nhị phân tìm kiếm ( BST), nếu nó
thoả mãn điều kiện sau: với cây đã cho và cây con bất kỳ các nút ở cây con trái của nó


đều chứa chữ cái trớc chữ cái ở nút gốc và các các nút ở cây con phải đều chứa chữ cái
sau chữ cái ở nút gốc. Tập các chữ cái của cây có thể rỗng (nếu cây rỗng) hoặc là K
chữ cái đầu tiên, nếu cây có K nút. Mỗi cây BST tơng ứng với 1 xây K ký tự. Xâu đợc
xây dựng theo thứ tự giữa: đầu tiên là ký tự ở nút gốc, sau đó là các ký tự biểu diễn
cây con trái và cuối cùng là các ký tự biểu diễn cây con phải. Các xâu này đợc sắp xếp
theo thứ tự từ điển và cây đợc đánh số theo thứ tự từ điển của xâu. Mã (N, K) ký hiệu
xâu tơng ứng với cây thứ N trong các cây BST có đúng K nút.


VÝ dơ, víi K = 4, ta có 14 cây, tơng ứng với các xâu:


abcd, abdc, acbd, adbc, adcb, bacd, badc, cabd, cbad, dabc, dacb, dbac, dcab, dcba
MÃ (7, 4) là badc, tơng ứng víi c©y:


u cầu: từ N và K cho trớc, xác định có bao nhiêu cây BST và mã (N,K), 0<K 26.


<i>Dữ liệu: vào từ file văn bản BST.INP, gồm nhiều dòng, mỗi dòng một cặp N, K, kết </i>


thúc là dòng chứa 2 số 0. Các số trên 1 dòng cách nhau 1 dấu cách.


<i>Kết quả: đa ra file văn bản BST.OUT, mỗi dòng tơng ứng với một cặp N, K khác 0 của </i>


dữ liệu vào, chứa số lợng cây (số nguyên ) và mà (N,K).


<i>Ví dụ:</i>


BST.INP BST.OUT


2 3


7 4 5 acb14 badc



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Đờng đi


Cho mt bng kớch thc 3*N ụ ( 1  N  100), trên mỗi ơ có điền một số 0 hoặc 1.
Bằng các phép U, D, L, R ngời ta bắt đầu đi từ ô trên trái của băng. Với giá trị S ban
đầu bằng 0. Cứ sang mỗi ô mới, ngời ta nhân đôi S và cộng vào S giá trị trong ô vừa
tới. Không đợc phép đi vào những ô đã đi qua. Hãy xác định một đờng đi từ ô trên trái


</div>

<!--links-->

×