báo cáo đồ án đề tài số GIẢ NGẤU NHIÊN

16 379 0
báo cáo đồ án đề tài  số GIẢ NGẤU NHIÊN

Đ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

j Trường Đại Học Bách Khoa Hà Nội Khoa Điện Tử Viễn Thông ====o0o==== BÁO CÁO ĐỒ ÁN Đề tài: SỐ GIẢ NGẤU NHIÊN Giảng viên hướng dẫn : Phạm Việt Thành Sinh viên thực : Nguyễn Mạnh Sinh MSSV: 20136310 Đặng Ngọc Sơn MSSV: 20125752 Hà Nội, 11/2015 ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN Lời cảm ơn Trong suốt q trình thực đồ án nhóm chúng em nhận nhiều giúp đỡ thầy cô,bạn bè.Em xin gửi lời cảm ơn sâu sắc đến thầy Phạm Việt Thành,thầy trực tiếp hướng dẫn,giúp đỡ chúng em suốt trình thực đề tài.Do thời gian có hạn nên đề tài cịn nhiều thiếu sót chưa áp dụng nhiều vào thực tế,rất mong nhận thêm nhiều góp ý thầy Sau cùng,em xin kính chúc thầy dồi sức khỏe,niềm tin để thực sứ mệnh cao đẹp truyền đạt kiến thức cho hệ mai sau Trân trọng ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN MỤC LỤC Chương 1: Mở đầu 1.1 Giới thiệu số giả ngẫu nhiên 1.2 Ứng dụng số giả ngẫu nhiên 1.3 Kết luận sau trình nghiên cứu sơ Chương 2: Giới thiệu công nghệ 2.1 Ngôn ngữ lập trình 2.2 Mơi trường lập trình Chương 3: Thiết kế hệ thống 3.1 Yêu cầu đề 3.2 Thuật toán tạo số giả ngẫu nhiên 3.3 Giao diện phần mềm Chương 4: Triển khai 4.1 Phân công công việc 4.2 Dowload cài đặt phần mềm cần sử dụng 4.3 Tạo giao diện phần mềm 4.4 Lập Trình Chương 5: Thử nghiệm 5.1 Kiểm tra xác thuật toán 5.2 Kiểm tra phần mềm KẾT LUẬN ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN CHƯƠNG 1: MỞ ĐẦU 1.1 Giới thiệu số giả ngẫu nhiên Số giả ngẫu nhiên hiểu theo nghĩa thông thường số đó.Nhưng tốn học,số ngẫu nhiên là: “số có khả xuất tương đương nhau”.Tuy nhiên,trong phạm vi sử dụng định mà giới hạn số ngẫu nhiên dùng.Chẳng hạn,khơng thể có số nguyên ngẫu nhiên mà có số ngun ngẫu nhiên miền đó.Ngồi ra,trong nhiều trường hợp không cần số ngẫu nhiên mà cần đến nhiều dãy số ngẫu nhiên 1.2 Ứng dụng số giả ngẫu nhiên Các số ngẫu nhiên hữu ích nhiều ứng dụng khác nhau.Trong thuật toán mật mã,thuật toán sử dụng số ngẫu nhiên để mã hóa giải mã thơng tin,ví dụ thuật tốn mã hóa khóa RSA,DES,3DES,AES…Bên cạnh đó,các số ngẫu nhiên đóng vai trị quan trọng việc mô phỏng.Ngay không cấc số ngẫu nhiên,việc mô cần số tùy ý dùng làm liệu nhập,và điều cung cấp thuận lợi công cụ tạo số ngẫu nhiên.Việc tạo số giả ngẫu nhiên coi mẫu mô phân khối cho trước.Kỹ thuật mẫu mô coi kỹ thuật Monte Carlo sử dụng để giải toán lý thuyết xếp hàng,các toán cung ứng vật tư đề liên quan đến xấp xỉ nghiệm phương trình vi phân,tích phân 1.3 Kết luận sau trình nghiên cứu sơ Sau trình nghiên cứu sơ đề tài chúng em thấy số giả ngẫu nhiên đề tài hay,có nhiều ứng dụng thiết thực thực tế.Chúng em định lựa chon đề tài tạo số giả ngẫu nhiên để thực đồ án CHƯƠNG 2: GIỚI THIỆU VỀ CƠNG NGHỆ 2.1 Ngơn ngữ lập trình a Ngơn ngữ JAVA ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN Ngôn ngữ hồn tồn hướng đối tượng Ngơn ngữ đa cho phép chương trình thực thi hệ điều hành khác (MS Windows, UNIX, Linux) mà khơng phải biên dịch lại chương trình Phương châm java "Viết lần , Chạy nhiều nền" (Write Once, Run Anywhere) Ngôn ngữ đa luồng, cho phép chương trình có nhiều luồng điều khiển thực thi song song nhau, hữu ích cho xử lý song song Ngôn ngữ phân tán, cho phép đối tượng ứng dụng phân bố thực thi máy tính khác Ngôn ngữ động, cho phép mã lệnh chương trình tải từ máy tính máy người u cầu thực thi chương trình Ngơn ngữ an toàn, tất thao tác truy xuất vào thiết bị vào thực máy ảo nhờ hạn chế thao tác nguy hiểm cho máy tính thật Ngơn ngữ đơn giản, dễ học, kiến trúc chương trình đơn giản, sáng b Khả ngôn ngữ JAVA Là ngôn ngữ bậc cao C, C++, Perl, SmallTalk, dùng để tạo ứng dụng để giải vấn đề số, xử lý văn bản, tạo trị chơi, nhiều thứ khác Có mơi trường lập trình đồ họa Visual Java, Symantec Cafe, Jbuilder, Jcreator, Có khả truy cập liệu từ xa thông qua cầu nối JDBC (Java DataBase Connectivity) Hỗ trợ lớp hữu ích, tiện lợi lập trình ứng dụng mạng (Socket) truy xuất Web Hỗ trợ lập trình phân tán (Remote Method Invocation ) cho phép ứng dụng xử lý phân tán máy tính khác Và ln bổ sung tính cao cấp khác phiên sau 2.2 Môi trường lập trình Android Studio, mơi trường lập trình phát triển ứng dụng vừa giới thiệu Google I/O 2013 Dựa “IntelliJ IDEA Community Edition”, công cụ cho phép tạo ứng dụng, dễ dàng thực thay đổi xem trước thời gian thực, đồng thời có khả tăng tốc sản phẩm, thiết kế giao diện đẹp trước Đặc biệt tiếng Việt hỗ trợ Android Studio ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 3.1 Yêu cầu đề tài Viết phần mềm tạo số giả ngẫu nhiên hình 3.2 Thuật tốn tạo số giả ngẫu nhiên Có nhiều phương pháp tạo số giả ngẫu nhiên khác đồng dư tuyến tính,nửa bình phương,đồng dư cộng…hoặc ta trực tiếp sử dụng hàm lớp Random cung cấp có sẵn Java.Tuy nhiên đề tài không yêu cầu hệ thống phức tạp số chữ số số giả ngẫu nhiên không cần lớn nên nhóm đề xuất sử dụng phương pháp đo số nano giây chạy đoạn chương trình hệ thong.Do nhiều yếu tố tác động nên lần chạy phần mềm tốn khoảng thời gian khác suy thời gian chạy đoạn chương trình thay đổi sau lần chương trình chạy.Từ khoảng thời gian vừa đo ta nhân với số (do người lập trình ) để kết lớn hơn.Để tạo số ngẫu nhiên với N chữ số,ta cắt dãy số lấy N chữ số 3.3 Giao diện phần mềm Phần mềm gồm hình: -Màn hình bật khởi động phần mềm có button,button “Bắt đầu” để chuyển đến hình 2,nếu khơng muốn tiếp tục nhấn button “Exit” -Màn hình gồm edittext để nhập số chữ số muốn hiển thị số giả ngẫu nhiên,một dòng hiển thị số giả ngẫu nhiên,một button ”Back” để quay lại hình CHƯƠNG 4: TRIỂN KHAI 4.1 Phân cơng cơng việc CƠNG VIỆC NGƯỜI THỰC HIỆN Tìm hiểu thuật tốn,viết slide Đặng Ngọc Sơn Tìm hiểu phần mềm viết code Nguyễn Mạnh Sinh Viết Báo cáo Cả nhóm ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN Trình bày slide báo cáo Cả nhóm 4.2 Dowload cài đặt phần mềm cần sử dụng 4.3 Tạo giao diện phần mềm -Code hình 1: ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN Hình ảnh minh họa: -Code hình 2: ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN -Hình ảnh minh họa: 4.4 Lập trình Code chương trình: Màn hình 1: ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN public class MainActivity extends AppCompatActivity { TableLayout t1; TableRow tr1,tr2,tr3; Button b1,b2; TextView tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); t1=(TableLayout) findViewById(R.id.tableLayout1); tr1=(TableRow) findViewById(R.id.tableRow); tr2=(TableRow) findViewById(R.id.tableRow1); tr3=(TableRow) findViewById(R.id.tableRow2); tv1=(TextView) findViewById(R.id.textViewSGNN); b1=(Button) findViewById(R.id.buttonBatDau); b2=(Button) findViewById(R.id.buttonExit); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent tx1=new Intent(MainActivity.this, com.example.sinh.do_an_i.Man_Hinh_Chinh.class); startActivity(tx1); } }); b2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder b=new AlertDialog.Builder(MainActivity.this); b.setTitle("QUESTION"); b.setMessage("Bạn có muốn đóng ứng dụng"); b.setNegativeButton("YES", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); // Tao su kien ket thuc ung dung Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startActivity(startMain); finish(); } }); b.setPositiveButton("NO", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); b.create().show(); } }); } Màn hình 2: 10 ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN public class Man_Hinh_Chinh extends AppCompatActivity { TableLayout t2; TableRow tr21,tr22,tr23,tr24,tr25; TextView tv21,tv22,tv23; EditText et21; Button bt21,bt22; int x,y,b; long i,j,k; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_man hinh chinh); t2 = (TableLayout) findViewById(R.id.tableLayout2); tr21 = (TableRow) findViewById(R.id.tableRow21); tr22 = (TableRow) findViewById(R.id.tableRow22); tr23 = (TableRow) findViewById(R.id.tableRow23); tr24 = (TableRow) findViewById(R.id.tableRow24); tv21 = (TextView) findViewById(R.id.textViewSGNN2); tv22 = (TextView) findViewById(R.id.textViewCauHoi); tv23 = (TextView) findViewById(R.id.textViewKetQua); et21 = (EditText) findViewById(R.id.editTextChuSo); bt21 = (Button) findViewById(R.id.buttonOk); bt22 = (Button) findViewById(R.id.buttonBack); bt22.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent t2 = new Intent(Man_Hinh_Chinh.this, MainActivity.class); startActivity(t2); } }); j=System.nanoTime(); bt21.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SoChuSo(); ngaunhien(); String u=String.valueOf(k); if(x>0&&y>0) { String a = u.substring(x, y); tv23.setText(a); } else tv23.setText("Nhập số từ đến 9.Xin nhập lại!"); } }); } public void SoChuSo() { b=Integer.parseInt(et21.getText().toString()); switch (b) { case 1: x=8; y=9; break; case 2: x = 5; y = 7; break; 11 ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN case 3: x = 5; y = 8; break; case 4: x = 5; y = 9; break; case 5: x = 6; y = 11; break; case 6: x = 5; y = 11; break; case 7: x = 4; y = 11; break; case 8: x = 3; y = 11; break; case 9: x = 3; y = 12; break; default: x=0; y=0; break; } } public long ngaunhien() { i=System.nanoTime(); k=220895*(i-j); return k; } CHƯƠNG 5: THỬ NGHIỆM 5.1 Kiểm tra xác thuật tốn thuật tốn -Thuật tốn kiểm tra +Giả sử cần tạo số giả ngẫu nhiên có chữ số +Thực thuật tốn 100000 lần +Đếm số lần xuất số từ 0->99 +Số lần xuất số thuật toán +Ngược lại thuật toán sai -Kết kiểm tra thuật toán +Số lần xuất số giao động khoảng 12 ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN 950 đến 1050 -Kết luận:Thuật toán -Đồ thị minh họa: Trong đó: +Trục hồnh số từ 1->99 +Trục tung số lần xuất số tương ứng 5.2 Kiểm tra phần mềm -Hình ảnh phần mềm: 13 ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN KẾT LUẬN: -Qua trình thực chúng em hiểu rõ phương thức tạo số giả ngẫu nhiên,biết cách sử dụng phần mềm Android Studio ngơn ngữ lập trình Java android,do thời gian có hạn nên phần mềm chúng em cịn nhiều thiếu sót chưa có nhiều ứng dụng,rất mong nhận giúp góp ý thầy để chúng em tiếp tục phát triển ứng dụng phần mềm Em xin chân thành cảm ơn! PHỤ LỤC TÀI LIỆU THAM KHẢO 1.https://www.academia.edu/5792408/H%C6%B0%E1%BB%9Bng_d %E1%BA%ABn_th%E1%BB%B1c_h%C3%A0nh_Android 14 ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN http://myclass.vn/khoa-hoc/lap-trinh-android-co-ban/ 15 ... thuật toán 5.2 Kiểm tra phần mềm KẾT LUẬN ĐỒ ÁN I-SỐ GIẢ NGẪU NHIÊN CHƯƠNG 1: MỞ ĐẦU 1.1 Giới thiệu số giả ngẫu nhiên Số giả ngẫu nhiên hiểu theo nghĩa thông thường số đó.Nhưng tốn học ,số ngẫu nhiên. .. trình nghiên cứu sơ đề tài chúng em thấy số giả ngẫu nhiên đề tài hay,có nhiều ứng dụng thiết thực thực tế.Chúng em định lựa chon đề tài tạo số giả ngẫu nhiên để thực đồ án CHƯƠNG 2: GIỚI THIỆU... kiểm tra +Giả sử cần tạo số giả ngẫu nhiên có chữ số +Thực thuật toán 100000 lần +Đếm số lần xuất số từ 0->99 +Số lần xuất số thuật toán +Ngược lại thuật toán sai -Kết kiểm tra thuật toán +Số lần

Ngày đăng: 03/02/2016, 18:23

Từ khóa liên quan

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

Tài liệu liên quan