Viết chương trình cài đặt thuật toán kiểm tra số nguyên tố với input

12 85 2
Viết chương trình cài đặt thuật toán kiểm tra số nguyên tố với input

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đề tài thực tập sở LỜI MỞ ĐẦU Ngày nay, công nghệ thông tin ngày phát triển tỏ rõ tầm quan trọng tất lĩnh vực, nói cơng nghệ thơng tin trở thành thước đo để đánh giá phát triển xã hội đại – nơi mà người dần khỏi cách làm việc thủ cơng, thơ sơ dần tiến đến tin học hóa tất lĩnh vực để cơng việc có hiệu hơn, tiết kiệm thời gian nhân lực Sinh viên CNTT ngày phải không ngừng học hỏi , cập nhật công nghệ biết vận dụng kiến thức học hỏi vào thực tiễn sống Đợt thực tập sở hội để sinh viên em áp dụng học năm qua Trong đề tài thực tập em trình bày số ứng dụng lợi ích cơng nghệ thông tin mang lại sống Nhân dịp em xin gửi lời cảm ơn đến khoa công nghệ thông tin tạo hội giúp em tham gia học hỏi, rèn luyện kỹ cần thiết cho đợt thực tập cuối khóa Đặc biệt em xin gửi lời cảm ơn đến giảng viên TS.Trần Văn Cảnh quan tâm góp ý cho làm thực tập sở sẵn sàng trả lời thắc mắc cần thiết giúp em hoàn thành tốt làm Mặc dù có nhiều cố gắng kiến thức hạn chế với kinh nghiệm chưa có nên khơng tránh khỏi thiếu sót.Vì em mong nhận ý kiến đóng góp bổ sung thầy cô giáo bạn để làm thực tập sở em hoàn thiện MỤC LỤC Đề tài thực tập sở LỜI MỞ ĐẦU PHẦN I: MÃ ĐỀ_NỘI DUNG BÀI TOÁN PHẦN II: GIẢI QUYẾT BÀI TOÁN .3 A CÂU : I NỘI DUNG BÀI TOÁN II THUẬT TOÁN GIẢI QUYẾT CÔNG VIỆC CHO MỠI HÀM Lựa chọn ngơn ngữ lập trình Xác định bài toán Thuật toán 3 4 Chương trình minh họa III DỮ LIỆU TEST VÀ KẾT QUẢ TEST TƯƠNG ỨNG B CÂU 2: I NỘI DUNG BÀI TOÁN II THUẬT TOÁN GIẢI QUYẾT CÔNG VIỆC Lý Thuyết 7 Ứng dụng bài toán tô màu đồ thị Cài đặt thuật toán để giải giải ứng dụng thực tế III DỮ LIỆU TEST VÀ KẾT QUẢ TEST TƯƠNG ỨNG 11 KẾT LUẬN 12 TÀI LIỆU THAM KHẢO 12 PHẦN I: MÃ ĐỀ_NỘI DUNG BÀI TOÁN Mã đề tài : 083 Đề tài thực tập sở Câu 1: Tạo tệp văn dòng đầu chứa số nguyên n m, ma trận số thực n x m Viết chương trình đọc phần tử tệp vào mảng hai chiều anxm Xây dựng mảng chiều b gồm giá trị lớn hàng mảng hai chiều a Câu 2: Viết chương trình cài đặt thuật tốn kiểm tra số ngun tố với Input đầu vào số bé 2000000000 Áp dụng thuật toán Rabin-Miller , Lehmann… để tăng tốc độ xử lý, không sử dụng phương pháp vét cạn để kiểm tra -PHẦN II: GIẢI QUYẾT BÀI TOÁN A CÂU : I NỘI DUNG BÀI TOÁN Tạo tệp văn dòng đầu chứa số nguyên n m, ma trận số thực n x m Viết chương trình đọc phần tử tệp vào mảng hai chiều anxm Xây dựng mảng chiều b gồm giá trị lớn hàng mảng hai chiều a II THUẬT TOÁN GIẢI QUYẾT CÔNG VIỆC CHO MỖI HÀM Lựa chọn ngơn ngữ lập trình - Ngơn ngữ lập trình Java Xác định bài toán -Xác định đầu vào đầu toán: +Input: -Tệp văn matran.txt tệp đầu vào dòng chứa số nguyên m n -Tiếp theo ma trận số thực n x m +Output: - Mảng chiều b gồm giá trị lớn hàng mảng hai chiều a Đề tài thực tập sở Thuật toán Bước 1: Khai báo mảng chiều a có kích thước n x m để lưu giá trị ma trận , mảng chiều b để lưu giá trị lớn hàng mảng chiều a Bước 2: Đọc liệu từ tệp matran.txt chứa ma trận số thực đưa vào mảng chiều a Bước 3: -Hàm xem ma trận : + ta duyệt phần tử mảng chiều a đưa hình kết Bước 4: -hàm tìm kiếm phần tử có giá trị lớn đẩy vào mảng chiều b Bước 5: - Duyệt qua phân tử mảng chiều b đưa hình kết Bước : -Hàm main chính: Chương trình minh họa package thuctap; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Matran { public int hang; public int cot; Double[][] matran; Double[] max; public void doctep(String fname) throws FileNotFoundException { File f = new File(fname); Đề tài thực tập sở Scanner sc = new Scanner(f); String s[] = sc.nextLine().split("\t"); this.hang = (int) Double.parseDouble(s[0]); this.cot = (int) Double.parseDouble(s[1]); this.matran = new Double[hang][cot]; System.out.println("so hang la " + hang); System.out.println("so cot la " + cot); for (int i = 0; i < hang; i++) { for (int j = 0; j < cot; j++) { matran[i][j] = sc.nextDouble(); } } } public void xem() { for (int i = 0; i < hang; i++) { for (int j = 0; j < cot; j++) { System.out.print(matran[i][j] + "\t"); } System.out.println(); } } public void maxhang() { this.max = new Double[this.hang]; for (int i = 0; i < hang; i++) { double max = matran[i][0]; for (int j = 1; j < cot; j++) { if (matran[i][j] > max) max = matran[i][j]; this.max[i] = max; } } } public void xemmax() { System.out.println("mang max cac hang "); for (int i = 0; i < hang; i++) { System.out.print(max[i] + "\t"); } } public static void main(String[] args) throws FileNotFoundException { Đề tài thực tập sở Matran a = new Matran(); a.doctep("data/matran.txt"); a.xem(); a.maxhang(); a.xemmax(); } } III DỮ LIỆU TEST VÀ KẾT QUẢ TEST TƯƠNG ỨNG Để chạy chương trình ta sử dụng số phần mềm chuyên dụng : Eclip hay Netbean … Và liệu kèm: ta tạo tệp matran.txt dòng chứa số nguyên cách dấu tab -Với tệp matran.txt: -kết sau chạy chương trình Đề tài thực tập sở B CÂU 2: I NỢI DUNG BÀI TOÁN Viết chương trình cài đặt thuật toán kiểm tra số nguyên tố với Input đầu vào số bé 2000000000 Áp dụng thuật toán Rabin-Miller , Lehmann… để tăng tốc độ xử lý, không sử dụng phương pháp vét cạn để kiểm tra II THUẬT TOÁN GIẢI QUYẾT CÔNG VIỆC Giới Thiệu 1.1 Ứng dụng số nguyên tố tin học 1.1.1 Ứng dụng - Bài toán kiểm tra số nguyên tố toán lại quan trọng đặc biệt lĩnh vực an tồn bảo mật thơng tin cụ thể hệ bảo mật RSA 1.1.2 Các phương pháp kiểm tra số nguyên tố -Có nhiều phương pháp kiểm tra số nguyên tố : phương pháp chứng minh theo định lý Fecma, phương pháp sàng số nguyên tố Eratosthenes, phương pháp kiểm tra theo xác suất Thuật toán Miller- Rabin thuật toán dựa phương pháp chứng minh theo xác suất thao tác số lớn Cơ sở thuật toán Thuật toán dựa định lý quan trọng sau “Nếu n số nguyên tố (n-1 )!≡ (n-1) mod n Với số nguyên n, Ф(n) số số nguyên tố với n mà nhỏ n Khi đó, với Đề tài thực tập sở x, x > 0, xФ(n)≡ mod n ” Thuật toán 3.1 Sơ đồ thuật toán Begin +n: số cần kiểm tra +t :số lần kiểm tra n-1=2^k*m; a=random(); b=a^m mod n i=0 b=mod n ; i=i+1 i3 , tham số để thực số lần kiểm tra n o Output:trả lời n có phải số nguyên tố hay khơng o Thuật tốn : Bước 1: tính n-1=2^k*m n số cần kiểm tra m là số nguyên lẻ s=n-1 số nguyên Bước 2: chọn số ngẫu nhiên a với 1< a < n-1 Đề tài thực tập sở Bước : tính b a^m mod n If(b mod n) Return “là số nguyên tố”; else for(int i=0;i3 , tham số để thực số lần kiểm tra n o Output:trả lời n có phải số ngun tố hay khơng o Thuật tốn : Bước 1: tính n-1=2^k*m n số cần kiểm tra. .. số nguyên tố -Có nhiều phương pháp kiểm tra số nguyên tố : phương pháp chứng minh theo định lý Fecma, phương pháp sàng số nguyên tố Eratosthenes, phương pháp kiểm tra theo xác suất Thuật toán

Ngày đăng: 29/08/2021, 19:57

Từ khóa liên quan

Mục lục

  • LỜI MỞ ĐẦU

  • PHẦN I: MÃ ĐỀ_NỘI DUNG BÀI TOÁN

  • PHẦN II: GIẢI QUYẾT BÀI TOÁN

  • A. CÂU 1 :

    • I. NỘI DUNG BÀI TOÁN.

    • II. THUẬT TOÁN GIẢI QUYẾT CÔNG VIỆC CHO MỖI HÀM.

      • 1. Lựa chọn ngôn ngữ lập trình.

      • 2. Xác định bài toán.

      • 3. Thuật toán.

      • 4. Chương trình minh họa

      • III. DỮ LIỆU TEST VÀ KẾT QUẢ TEST TƯƠNG ỨNG.

      • B. CÂU 2:

        • I. NỘI DUNG BÀI TOÁN.

        • II. THUẬT TOÁN GIẢI QUYẾT CÔNG VIỆC.

          • 1. Giới Thiệu.

          • 1.1. Ứng dụng của số nguyên tố trong tin học

          • 1.1.1. Ứng dụng

          • 1.1.2. Các phương pháp kiểm tra số nguyên tố.

          • -Có rất nhiều phương pháp kiểm tra số nguyên tố như : phương pháp chứng minh theo định lý Fecma, phương pháp sàng số nguyên tố Eratosthenes, phương pháp kiểm tra theo xác suất . Thuật toán Miller- Rabin là thuật toán dựa trên phương pháp chứng minh

          • theo xác suất và có thể thao tác trên số lớn

            • 2. Cơ sở thuật toán

            • 3. Thuật toán.

            • 3.1. Sơ đồ thuật toán .

            • 3.4.Cài đặt chương trình .

            • III. DỮ LIỆU TEST VÀ KẾT QUẢ TEST TƯƠNG ỨNG.

Tài liệu cùng người dùng

Tài liệu liên quan