SKKN kỹ thuật dùng bit trạng thái để xử lý hiệu quả bài toán tin học

35 6 0
SKKN kỹ thuật dùng bit trạng thái để xử lý hiệu quả bài toán tin học

Đ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

Kỹ thuật dùng bit trạng thái để xử lý hiệu toán Tin học Kỹ thuật dùng bit trạng thái để xử lý hiệu toán Tin học MỤC LỤC A ĐẶT VẤN ĐỀ Error: Reference source not found I LÝ DO CHỌN ĐỀ TÀI Error: Reference source not found II CƠ SỞ LÝ LUẬN .Error: Reference source not found III CƠ SỞ THỰC TIỄN Error: Reference source not found Thuận lợi: Error: Reference source not found Khó khăn: Error: Reference source not found IV NỘI DUNG Error: Reference source not found V PHẠM VI ỨNG DỤNG CỦA ĐỀ TÀI .Error: Reference source not found B NỘI DUNG Error: Reference source not found I CÁC KIẾN THỨC CƠ BẢN VỀ BIT TRẠNG THÁI Error: Reference source not found Phép đảo bit Not .Error: Reference source not found Phép AND Error: Reference source not found Phép OR Error: Reference source not found Phép phủ định NOT Error: Reference source not found Phép XOR Error: Reference source not found Phép dịch trái > .Error: Reference source not found II CÁC BÀI TOÁN MINH HỌA VỀ XỬ LÝ BIT TRẠNG THÁI Error: Reference source not found Bài toán Error: Reference source not found Bài toán Error: Reference source not found Bài toán 3: .Error: Reference source not found Bài toán 4: Phép cộng Error: Reference source not found Bài toán Tập .Error: Reference source not found Bài tốn 6: Trị chơi NIM .Error: Reference source not found Bài toán Số khác .Error: Reference source not found Bài tốn Xâu lập Error: Reference source not found Bài toán FIRSTROW Error: Reference source not found Trang Kỹ thuật dùng bit trạng thái để xử lý hiệu toán Tin học Bài toán 10 Dãy số Error: Reference source not found Bài toán 11: Đầu bếp Error: Reference source not found Bài toán 12: Biểu diễn trạng thái Error: Reference source not found Bài toán 13: Quy hoạch động .Error: Reference source not found Bài tốn 14: Chọn Error: Reference source not found Bài toán 15: Chuyến du lịch - TRIP .Error: Reference source not found Bài tốn 16: Cơ gái chăn bị - COWGIRL Error: Reference source not found C KẾT LUẬN .Error: Reference source not found Trang Kỹ thuật dùng bit trạng thái để xử lý hiệu toán Tin học A ĐẶT VẤN ĐỀ I LÝ DO CHỌN ĐỀ TÀI Trong thời đại công nghệ thơng tin thực bùng nổ có tác động lớn đến với công phát triển kinh tế - xã hội người, đất nước (và thực tế ta nói ta sống kỉ nguyên số, kỉ nguyên công nghệ thông tin) Đảng nhà nước ta xác định rõ để đất nước phát triển yếu tố làm tảng ứng dụng Tin học – công nghệ thông tin phải đưa vào triệt để lĩnh vực xã hội Những yêu cầu đẩy mạnh ứng dụng công nghệ thông tin, đào tạo nguồn nhân lực đáp ứng u cầu Cơng nghiệp hóa, Hiện đại hóa, mở cửa hội nhập, hướng đến kinh tế tri thức đất nước ta nói riêng, giới nói chung Chính xác định tầm quan trọng đó, tơi nghĩ đào tạo cung cấp cho đất nước nhà lập trình viên giỏi việc làm cần thiết Tin học lập trình mơn học khó học sinh THPT Làm để học sinh hiểu, học tốt, yêu thích tham gia tốt kỳ thi học sinh giỏi Tin học điều mà nhiều giáo viên dạy tin học trăn trở Là giáo viên dạy tin nhiều năm thấy việc trang bị cho em học sinh kiến thức thuật toán giải vấn đề cách khoa học cần thiết, điều giúp học sinh hứng thú học tập em tự kiến tạo tri thức tham gia vào việc kiến tạo tri thức cho dựa tri thức có, bổ sung làm cho tri thức cũ hoàn chỉnh Học sinh học tập tự giác, tích cực, vừa kiến tạo tri thức, vừa học đựơc cách giải vấn đề, lại vừa rèn luyện đức tính quý báu tính chủ động, tích cực, tính kiên trì vượt khó, tính kế hoạch thói quen tự kiểm tra… Trong đề tài này, xin đề cập tới “Kỹ thuật dùng bit trạng thái để xử lý hiệu toán tin học” Như biết, nhớ máy tính lưu trữ dạng mã hóa hệ nhị phân theo bảng mã IISCI Bản chất máy tính hiểu mã nhị phân dạng dãy số Mỗi số gọi bit Bít đơn vị nhỏ để lưu trữ liệu máy tính điện tử, bit chứa số Chính lập trình ta chuyển tốn xử lý dạng bit tốc độ chương trình đẩy nhanh nhiều Trang Kỹ thuật dùng bit trạng thái để xử lý hiệu toán Tin học Ngơn ngữ lập trình cung cấp cho tốn tử để thao tác bit phép and, or, not, xor, dịch trái, dịch phải Trong đề tài cung cấp kiến thức việc sử dụng phép tốn logic từ giúp cho việc thiết kế biểu thức logic dùng nhiêu phép tốn điều kiện nhanh chóng, xác, hiệu Hơn đề tài phân tích hiệu việc chuyển toán từ phương pháp xử lý thông thường sang phương pháp xử lý bit II CƠ SỞ LÝ LUẬN Qua nhiều năm giảng dạy, bồi dưỡng học sinh giỏi môn Tin học nhận thấy: - Việc trang bị cho em học sinh kiến thức thuật toán giải vấn đề cách khoa học cần thiết - Phương pháp dùng kỹ thuật bit trạng thái để xử lý thực hiệu toán tin học - Trong tất kỳ thi chọn học sinh giỏi Tỉnh, toán dùng phương pháp bit trạng thái thực hiệu III CƠ SỞ THỰC TIỄN Một số thuận lợi khó khăn thực chuyên đề sáng kiến kinh nghiệm trường Thuận lợi: - Môn Tin học môn học ủng hộ Cấp trên, Sở giáo dục Đào tạo, cấp Ủy, nhà trường tạo điều kiện sắm sửa phòng máy trang thiết bị cần thiết - Trường có sở vật chất tốt - Học sinh hứng thú mơn học - Mơn học có ứng dụng lớn thực tiễn nên học sinh chịu khó nghiên cứu học tập - Hàng năm kết thi học sinh giỏi môn Tin đạt kết cao nên tạo động lực lớn cho học sinh tâm học tập Khó khăn: Trang Kỹ thuật dùng bit trạng thái để xử lý hiệu toán Tin học - Các tài liệu bồi dưỡng học sinh giỏi mơn tin cịn - Giáo viên đủ chuẩn để bồi dưỡng học sinh giỏi mơn tin cịn hạn chế - Là mơn học khó, địi hỏi người học hội tụ nhiều phẩm chất như: Thông minh, tư tốt, kiên trì, có khiếu lập trình, cẩn thận, nhanh nhạnh xác tuyệt đối kỹ thuật nhỏ IV NỘI DUNG - Các kiến thức bit trạng thái - Các toán minh họa ứng dụng xử lý bit V PHẠM VI ỨNG DỤNG CỦA ĐỀ TÀI Nội dung đề tài sử dụng làm tài liệu cho học sinh trường THCS, THPT u thích mơn tin học lập trình Đề tài tài liệu cho đồng nghiệp ngồi Tỉnh u thích môn Tin học Trang Kỹ thuật dùng bit trạng thái để xử lý hiệu toán Tin học B NỘI DUNG I CÁC KIẾN THỨC CƠ BẢN VỀ BIT TRẠNG THÁI Quy ươc vị trí bit: Mỗi byte bao gồm bit mã số từ phải sang trái gọi bit thấp đến bit cao Bit nằm bên phải xem thấp bit nằm bên trái Các bit đánh số sau: Mỗi bit nhận giá trị Tại thời điểm thực chương trình bit đươc nhận giá trị xác định Mọi số nguyên máy biểu diễn dạng nhị phân, ví dụ số 19 biểu diễn sau: Bit Giá trị 0 0 1 (số 19) Các phép toán logic bit có phép and, or, not, xor, dịch trái, dịch phải Các phép toán sau thực giá trị nguyên cho kết giá trị nguyên Phép đảo bit Not Đổi giá trị bit từ thành ngược lại Trong C phép đảo kí hiệu ~ Ví dụ Các tốn thử thao tác bit (bitwise) Dữ liệu lưu trữ máy tính dạng nhị phân 1, ví dụ: unsigned char a = 12; Thì lưu trữ nhớ là: 0000 1100 Tương tự unsigned int b = 95; Lưu trữ b nhớ là: 0000 0000 0000 0000 0000 0000 0101 1111 Không gian lưu trữ kiểu unsigned int lớn unsigned char unsigned int dùng 32 bits để biểu diễn unsigned char dùng bits để biểu diễn Các toán tử thao tác bit Trang Kỹ thuật dùng bit trạng thái để xử lý hiệu toán Tin học Phép thao tác bit Kí hiệu Phép AND & Phép OR | Phép phủ định NOT ~ Phép XOR ^ Phép dịch trái - Shift left > Phép AND Kí hiệu: & Bảng chân trị A B A&B 0 0 1 0 1 Phép AND có giá trị hai tốn hạng có giá trị Ví dụ: A 0000 1100 B 0101 0101 C = A & B 0000 0100 Phép OR Kí hiệu: | Bảng chân trị A B A|B 0 0 1 1 Trang Kỹ thuật dùng bit trạng thái để xử lý hiệu toán Tin học 1 Phép OR có giá trị hai tốn hạng có giá trị Ví dụ: A 0000 1100 B 0101 0101 C=A|B 0101 1101 Phép phủ định NOT Kí hiệu: ~ Bảng chân trị A ~A 1 Phép NOT đảo bit thành ngược lại Ví dụ A 0000 1100 B = ~A 1111 0011 Phép XOR Kí hiệu: ^ Bảng chân trị A B A^ B 0 0 1 1 1 Phép XOR có giá trị hai tốn hạng có giá trị, giá trị 1, giá trị Ví dụ Trang Kỹ thuật dùng bit trạng thái để xử lý hiệu toán Tin học A 0000 1100 B 0101 0101 C=A^B 0101 1001 Phép dịch trái Phép dịch phải n bit tương đương với phép chia cho 2n Ví dụ A 0000 1100 —> B = A >> 0000 0011 Các ví dụ thao tác bit AND unsigned char a = 5; // 00000101(5) unsigned char b = 6; // 00000110(6) unsigned char c = a & b; // 00000100(4) OR unsigned char a = 5; // 00000101(5) unsigned char b = 6; // 00000110(6) unsigned char c = a | b; // 00000111(7) NOT Trang Kỹ thuật dùng bit trạng thái để xử lý hiệu toán Tin học unsigned char a = 5; // 00000101(5) unsigned char b = ~a; // 11111010(250) unsigned char a = 5; // 00000101(5) unsigned char b = 6; // 00000110(6) int c = a ^ b; // 00000011(3) unsigned char a = 5; // 00000101(5) XOR Dịch trái unsigned char a = 5; // 00000101(5) unsigned char b = a >> 1; // 00000010(2) II CÁC BÀI TOÁN MINH HỌA VỀ XỬ LÝ BIT TRẠNG THÁI Bài toán 1: Lấy bit Ứng dụng Viết hàm getbit(x,i) cho giá trị bit thứ i(tính từ phải sang) số nguyên x char Getbit(char x, i) { return (x Shr i) && 1; } Bài toán 2: Lấy số Ứng dụng Viết hàm GetNum(x, j, i) cho số tạo bit tính từ trái qua phải bit thứ j đến bit thứ i (j>=i) Ví dụ GetNum(103,5,1)=19 103=0000 0000 0110 0111 GetNum(103,5,1)= 0000 0000 0001 0011 =19 Bài giải: Trang 10 Kỹ thuật dùng bit trạng thái để xử lý hiệu toán Tin học { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); freopen("FIRSTROW.inp","r",stdin); freopen("FIRSTROW.out","w",stdout); for(i=0;i k >> a >> b; if (k==0) {cout =0){ long long tmp; if (a > r || l > b) tmp = 0; else { long long mama = min(r, b), mimi = max(a, l); tmp = max(mama - mimi + 1, 0LL); } res = res + tmp; l = l * 2; r = r * + 1; x ; } cout 0) { Sumarize = Sumarize or b[i]; } If(Sumarize == (2^K-1)) { //Print the result } } Độ phức tạp đoạn code O(2^N*K), với N=K=20 chạy 1s ok Bài toán 12: Biểu diễn trạng thái Với toán 10, biểu diễn khơng có Thực tế kĩ thuật hiểu xa tí, ta xét ví dụ quen thuộc sau: Ta có ba chai nước tích V 1, V2, V3 (Vi < 10) (đơn vị thể tích) Ban đầu ta có chai nước thứ đầy nước hai chai cịn lại khơng chứa Bạn cần tìm cách rót cho bình V3 chứa K (K

Ngày đăng: 24/05/2021, 18:25

Mục lục

  • A. ĐẶT VẤN ĐỀ

    • I. LÝ DO CHỌN ĐỀ TÀI

    • II. CƠ SỞ LÝ LUẬN

    • V. PHẠM VI ỨNG DỤNG CỦA ĐỀ TÀI

    • B. NỘI DUNG

      • I. CÁC KIẾN THỨC CƠ BẢN VỀ BIT TRẠNG THÁI

        • 1. Phép đảo bit Not

        • 4. Phép phủ định NOT

        • 6. Phép dịch trái <<

        • 7. Phép dịch phải >>

        • II. CÁC BÀI TOÁN MINH HỌA VỀ XỬ LÝ BIT TRẠNG THÁI

          • Bài toán 1: Lấy bit

          • Bài toán 2: Lấy số

          • Bài toán 4: Phép cộng

          • Duyệt qua tất cả các tập con có k phần tử

          • Bài toán 6: Trò chơi NIM

          • Bài toán 11: Đầu bếp

          • Bài toán 13: Quy hoạch động

          • Bài toán 14: Chọn ô

          • Cài đặt:

            • Trong chương trình sử dụng một số hàm như sau:

            • Bài toán 15: Chuyến du lịch - TRIP

            • Bài toán 16: Cô gái chăn bò - COWGIRL

            • Ví dụ:

              • F[i,x] = F[i,x] + F[i-1,y] )

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

Tài liệu liên quan