PDA

View Full Version : [Help] Small math



cauberungxanh
10-02-2003, 16:47
Xin giải giúp 2 bài toán nhỏ :
+ (207^17)mod 2773 = ?
+ (13^17)mod 2773 = ?

cauberungxanh
10-02-2003, 16:49
Và, nếu có thể, xin chỉ dùm mình thuật toán phân tích 1 số nguyên (lớn) thành tích của 2 số nguyên tố (= pascal hoặc Delphi).

cauberungxanh
10-02-2003, 16:54
Xin lỗi, thêm cái yêu cầu này nữa: số nguyên được phân tích có số ký số 200 trở lên, và thời gian thực hiện là có thể chấp nhận được. Nhưng ban đầu thì cũng hy vọng thử với số ký số nhỏ thôi (20 chẳng hạn).
Mình chỉ hỏi (nhờ làm giúp) chứ không có ý định thách đố hay gì khác. Cám ơn lắm lắm...

hiensmart
10-02-2003, 17:01
+919
+219
Thuật toán theo tui là: chia 1 chuỗi số cho 1 số, tới chừng nào chia hết thì tính ra thừa số còn lại

btkiet
11-02-2003, 12:06
Hình như chưa có thuật toán cho bài này. Bạn có thể duyệt tất cả các số nguyên tố nhỏ hơn N (số cần phân tích). Lấy N chia cho số đó, nếu chia hết thì kiểm tra xem thương số có phải là số nguyên tố hay không. Nếu đúng thì dừng...
Ai có pp nào hay hơn thì xin chỉ giúp !!!

cauberungxanh
11-02-2003, 19:13
Thuật toán của btkiet không hiệu quả đối với những số có số ký số lớn (như mình đã nói). Không biết còn ai có ý kiến nào không?

Zero
13-02-2003, 10:54
Nếu số đó nhỏ cỡ < 10 ^ 12 thì chỉ cần tìm các số nguyên tố nhỏ hơn căn bậc 2 của số cần làm rồi chia và kt (gần giống cách của btkiet nhưng nhanh hơn rất nhiều)
còn với số lớn như vậy có thuật toán hẳn hoi khá trâu, mình đã chạy thử nó và thấy nó pt số 200 chữ số trong 1s (!). Theo thầy của mình thì có một số thuật toán được cài vào những năm 90 có thể pt số hàng nghìn chữ số trong thời gian < 1s trên máy tính thường tuy nhiên đó là các thuật toán dựa trên rất nhiều các cải tiến về mặt toán học (toán cao cấp). Bạn có thể tìm trong một số đĩa CD luận văn tốt nghiệp mình nhớ có 1 đĩa có 1 luận văn về vấn đề này pt được kc 200 chữ số có cả thuật toán, code nguồn.

cauberungxanh
13-02-2003, 17:44
Bạn có nhớ chính xác hơn không?

cauberungxanh
14-02-2003, 18:52
À, hiensmart giải bài tóan của mình bằng cách nào vậy? Trong pascal mình dùng kiểu extended mà cũng đâu có được!

btkiet
16-02-2003, 10:30
bài này có thể tính được bằng cách áp dụng một thuật toán nhỏ.
Ví dụ cần tính (m^k) mod n.
B1: Nếu m>=n chuyển đến B3, ngược lại tiếp tục sang B2.
B2: Thực hiện m:=m*m; k:=k-1; cho đến khi m lớn hơn n.
B3: Thực hiện m=m mod n; Nếu k>1 thì quay về B2, ngược lại kết thúc.

cauberungxanh
17-02-2003, 15:10
Yeah, cám ơn btkiet nhiều.
Cho hỏi thêm nữa: Delphi có đối tượng nào tương tự như là View Port trong Pascal không? Vì mình muốn vẽ đồ thị....
Và, có phải trong bất kỳ máy nào cũng có mấy cái file icon hình ổ đĩa, hình thư mục dạng đóng, dạng mở.... không? Dùng trong TImageList kết hợp với TTreeView đó mà. Nếu có thì sao mình tìm máy mình mà sao không thấy?

Mach2
17-02-2003, 15:26
Muốn vẽ biểu đồ sao bạn ko dùng TChart cho nó khoè he, đồ thị cỡ nào cũng có láng hết.
Mấy cái file icon đó nằm trong mí file hệ thống mờ. Bạn vào trình icon nào đó trích nó ra, hầu hết trong system32\SHELL32.dll đó.

cauberungxanh
17-02-2003, 15:57
Không phải vẽ biểu đồ, mà là vẽ đồ thị, ví dụ như y=ax^2.... Mình chưa xài TChart bao giờ, có thật là có cả vẽ đồ thị như vậy không?

Mach2
17-02-2003, 18:51
Đúng là TChart dùng "chủ yếu" để vẽ biểu đồ. Nhưng mà vẽ đồ thị thì cũng dùng TChart được chứ sao? Bạn tính một dãy hàm y=f(x) rồi vẽ ko được sao? Vẽ x=f(y) cũng được mờ. Mình vẫn dùng nó để vẽ đấy thôi.

cauberungxanh
24-02-2003, 15:54
Không hiểy ý của Mach2 lắm nhưng mà cũng cám ơn nhiều. Cho hỏi thêm là mình cài Delphi 7 nhưng sao không thấy bảng công cụ Internet đâu cả?

cauberungxanh
27-02-2003, 17:47
Nè, giúp mình đi....

ketoido
28-02-2003, 13:14
Này có ai giải giùm minhbài toán nÀY VỚI
Hãy viết chương trình dể viết tiếng việt trong pascal với nhanh lên nha.

ketoido
28-02-2003, 13:16
có ai học giỏi foxpro thì chỉ mình với ... minh muốn tạo web bằng pascal thì lấmo đây

cauberungxanh
28-02-2003, 17:33
Bảng công cụ Internet sao không thấy trong Delphi 7?

btkiet
06-03-2003, 09:27
to cauberungxanh có thể cái Delphi 7 của bạn không đầy đủ, bạn thử nhấp chuột phải lên thanh cộng cụ xem nó có bị ẩn bên trong không.
to ketoido hiện nay không còn ai đi viết chương trình viết tiếng Việt bằng Pascal nữa đâu, chuyển lên Delphi đi bạn ơi (dễ lắm). Không thể viết Web bằng Pascal đâu, phải học ngôn ngữ HTML, ASP, JSP, PHP và nhiều cái khác. Hiện nay, người ta dùng FrontPage hay Dreamwave để hổ trợ thiết kế trang Web. Bạn hỏi Foxpro thì vào box CSDL về Fox mà hỏi, người ta sẽ rành hơn.

Mach2
06-03-2003, 21:33
Mí bạn ơi, đổi đề tài thì nên tạo thread mới đi, viết chung đủ thứ trong một thread thế này thì ít khi được quan tâm đúng mức lém...

Shinichi Heroine
07-03-2003, 12:58
Delphi 7 bỏ cái đó rồi

Delphi 7 dở hơn D6 nên người ta quay về D6 hết rồi

Riêng về bài toán thì Shinichi nghĩ nông cạn thôi :

Viết 1 hàm KTSoNT(var N:Integer):Boolean;

cho vòng For phân tích số X ra dạng A*B

if A*B=X and KTSoNT(A) and KTSoNT(B)

//Demo by Shinichi Heroine

For A:=1 to X do
For B:=1 to X do
if (A*B=X) and (KTSoNT(A)) and (KTSoNT(B)) then
//Lấy kết quả ra ..