Lỗi số lớn và kiểu String trong TP
I. Giới thiệu. Trong mỗi ngôn ngữ lập trình thường có một số kiểu dữ liệu chuẩn cho biết phạm vi giá trị có thể lưu trữ, dung lượng bộ nhớ cần thiết để lưu trữ và xác định các phép toán có thể tác động lên dữ liệu. Và trong TP, một số kiểu dữ liệu dạng số như kiểu số nguyên (bao gồm kiểu: byte, integer, word, login) trong đó kiểu logint (có phạm vi lớn nhất): mỗi giá trị lưu giữ trong 4 byte, giá trị biến kiểu này nằm trong phạm vi từ - 231 đến 231-1 tức là từ (-2147483648 đến 2147483647) nên chỉ cho phép biến lưu giữ số tối đa có 10 chữ số. | Xem tiếp |
Ứng dụng phép nhân ma trận trong giải bài tập tin học
Như tất cả chúng ta đều biết, một trong những yêu cầu không thể thiếu đối với việc giải quyết các bài tập tin học là độ phức tạp của thuật toán. Thông thường, để đạt được độ phức tạp thuật toán như mong muốn, cách làm thường là tìm ra một thuật toán ban đầu làm cơ sở, rồi từ đó dùng các kỹ năng để giảm độ phức tạp của thuật toán. Trong bài viết này, tôi xin giới thiệu với bạn đọc một phương pháp khá thông dụng: nhân ma trận. | Xem tiếp |
Bài toán dãy con tăng – giảm dài nhất
1. Bài toán dãy con tăng – giảm dài nhất Bài toán tìm dãy con tăng-giảm dài nhất được phát biểu như sau: cho một dãy số nguyên (hoặc 1 dãy số, một xâu ..) gồm n phần tử. Hãy tìm một dãy con gồm các phần tử của dãy ban đầu (giữ nguyên thứ tự) sao cho các phần tử của dãy con đó tạo thành một dãy tăng-giảm dần và dài nhất có thể được. Các phần tử của dãy con dài nhất tìm được (nghiệm của bài toán) không nhất thiết phải là các phần tử liên tiếp trong dãy ban đầu. Vì việc tìm một dãy con tăng dài nhất cũng tương tự như việc tìm một dãy con giảm dài nhất nên chúng ta sẽ chỉ xem xét bài toán tìm dãy con dài nhất. Các kiến thức tương tự cũng sẽ được áp dụng cho bài toán tìm dãy con giảm dài nhất. | Xem tiếp |
Tính giai thừa số lớn (Big Factorial)
Bài toán tính giai thừa là một trong các bài toán cơ bản khi học về lập trình (vòng lặp và đệ qui). Về cơ bản tính giai thừa (Factorial) là một bài toán tính tích n! = 1*2*...*n. Đối với các giá trị n nhỏ (n ≤ 20) thì giá trị của n! vẫn nằm trong vùng biểu diễn của số nguyên, tuy nhiên đối với số n lớn (khoảng vài trăm, vài nghìn) thì việc tính n! trở nên khó khăn vì giá trị của n! vượt quá khoảng biểu diễn của kiểu số nguyên lớn nhất. Trong bài báo này tôi sẽ giới thiệu với các bạn một thuật toán cơ bản dùng để tính giai thừa của một số nguyên lớn (n ≤ 100000) trên ngôn ngữ C/C++. | Xem tiếp |
PHƯƠNG PHÁP XÁC ĐỊNH ĐOẠN THẲNG NHÌN THẤY
Bài toán: Trên mặt phẳng toạ độ cho N đoạn thẳng (1<=N<=100). Toạ độ các điểm đầu, cuối của N đoạn thẳng này là các số nguyên không âm nhỏ hơn 20000. Đường thẳng đi qua mỗi đoạn thẳng này tạo với 2 trục toạ độ những tam giác vuông cân. Hai đoạn thẳng bất kì trong N đoạn thẳng này không có điểm chung. | Xem tiếp |
PHẦN MỀM HÌNH HỌC ĐỘNG VÀ BẤT ĐẰNG THỨC CÔ-SI ỨNG DỤNG TRONG GIẢI TOÁN CỰC TRỊ
Trong giải Toán cực trị hình học, bất đẳng thức Cô-si là một trong những bất đẳng thức thường dùng. Bất đẳng thức Cô-si chính là một trong những phương pháp rất hữu hiệu để Đại số hóa các bài toán hình học. Ứng dụng của nó như thế nào? Phần mềm hình học động ứng dụng trong cực trị hình học ra sao? Chúng ta sẽ khám phá những điều này trong bài viết sau. Tuy nhiên, trước hết chúng ta hãy đến với một số dạng của bất đẳng thức Cô-si. | Xem tiếp |
VẼ ĐỒ THỊ HÀM SỐ TỔNG, TÍCH, THƯƠNG CỦA HAI HÀM SỐ KHI BIẾT HAI ĐỒ THỊ HÀM SỐ THÀNH PHẦN BẰNG PHẦN MỀM HÌNH HỌC THE GEOMETR’S SKETCHPAD - P2
Ta biết rằng từ đồ thị hàm số (C): y = f(x) ta có thể vẽ đồ thị hàm số (C1): y = f(|x|), (C2): y =|f(x)|, (C3): y = -f(x), (C4):y = f(-x), (C5): y = f -1(x) (nếu hàm số f có hàm số ngược trên khoảng xác định của nó), (C6): y = - f(-x), (C7): y = f(x + a), (C8): y = f(x) + b, bằng các phép đối xứng trục, phép đối xứng tâm, phép tịnh tiến phù hợp. Vấn đề được đặt ra là: khi đã cho biết những đồ thị hàm số y = f1(x), y = f2(x), y = f(x) thì ta có thể vẽ các đồ thị hàm số có dạng y = k1.f1(x) + k2.f2(x) (k1, k2 là hai số thực khác không), hay không ? và cách vẽ như thế nào ?. Câu trả lời là được. Bài viết này sẽ giải quyết trọn vẹn vấn đề đó. | Xem tiếp |
VẼ ĐỒ THỊ HÀM SỐ TỔNG, TÍCH, THƯƠNG CỦA HAI HÀM SỐ KHI BIẾT HAI ĐỒ THỊ HÀM SỐ THÀNH PHẦN BẰNG PHẦN MỀM HÌNH HỌC THE GEOMETR’S SKETCHPAD
Ta biết rằng từ đồ thị hàm số (C): y = f(x) ta có thể vẽ đồ thị hàm số (C1): y = f(|x|), (C2): y =|f(x)|, (C3): y = -f(x), (C4):y = f(-x), (C5): y = f -1(x) (nếu hàm số f có hàm số ngược trên khoảng xác định của nó), (C6): y = - f(-x), (C7): y = f(x + a), (C8): y = f(x) + b, bằng các phép đối xứng trục, phép đối xứng tâm, phép tịnh tiến phù hợp. Vấn đề được đặt ra là: khi đã cho biết những đồ thị hàm số y = f1(x), y = f2(x), y = f(x) thì ta có thể vẽ các đồ thị hàm số có dạng y = k1.f1(x) + k2.f2(x) (k1, k2 là hai số thực khác không), hay không ? và cách vẽ như thế nào ?. Câu trả lời là được. Bài viết này sẽ giải quyết trọn vẹn vấn đề đó. | Xem tiếp |
XÁC ĐỊNH TRỌNG TÂM CỦA MỘT HÌNH ĐA GIÁC BẤT KỲ
Chắc đã có lần trong công việc hàng ngày, chúng ta đã gặp bài toán sau: “Trong mặt phẳng, cho một hình đa giác bất kì với toạ độ các đỉnh là số thực. Vấn đề đặt ra là xác định trọng tâm của hình đa giác đó”. Để làm được việc đó, sau đây xin tóm tắt lại lý thuyết đặc trưng hình học của mặt cắt ngang: | Xem tiếp |
|
|