• Trang chủ
  • Hỏi Đáp
  • Liên Hệ

HLink - Kênh Thông Tin Tổng Hợp Chính Thống

Bạn đang ở:Trang chủ / Hỏi Đáp / Bài 4: Bài toán và thuật toán

Bài 4: Bài toán và thuật toán

Tháng Chín 9, 2022 Tháng Chín 9, 2022 Chi Mỹ 0 Bình luận

Bài viết Bài 4: Bài toán và thuật toán thuộc chủ đề về Hỏi & Đáp thời gian này đang được rất nhiều bạn quan tâm đúng không nào !! Hôm nay, Hãy cùng Hlink.Vn tìm hiểu Bài 4: Bài toán và thuật toán trong bài viết hôm nay nhé ! Các bạn đang xem bài viết : “Bài 4: Bài toán và thuật toán”

Đánh giá về Bài 4: Bài toán và thuật toán


Xem nhanh
Mình thường nghe các bạn sinh viên hỏi về tầm quan trọng của việc học thuật toán.

Ý kiến của các bạn được chia làm hai luồng trái chiều là:
1. Thần thánh hoá thuật toán
2. Coi thường thuật toán

Vlog này sẽ giúp các bạn trả lời câu hỏi “Học thuật toán để làm cái vẹo gì?”, cũng như có cái nhìn khách quan hơn về thuật toán và những kinh nghiệm học nhé!

Channel Tôi Đi Code Dạo là nơi mình chia sẻ những kiến thức, kinh nghiệm về ngành lập trình mà mình đạt được trong quá trình làm việc. Những kiến thức này sẽ biến các bạn từ một coder trở thành developer - lập trình viên thứ thiệt.
Nhớ ghé thăm và subscrible channel để xem clip mới vào tối t3 và t6 hàng tuần nha!

Các link liên quan:
- Sách Cracking the Coding Interview: https://toidicodedao.com/2015/07/14/mot-so-cau-phong-van-thu-vi-ve-lap-trinh/
- Học thuật toán để làm gì: https://toidicodedao.com/2016/10/06/hoc-thuat-toan-de-lam-gi/

Ghé thăm mình tại:
Blog: https://toidicodedao.com/
Fanpage: https://www.facebook.com/toidicodedao/

BÀI 4. BÀI TOÁN VÀ THUẬT TOÁN

1. Khái niệm bài toán

– Bài toán là một việc nào đó ta muốn máy tính thực hiện. Ví dụ: Giải phương trình bậc 2, quản lý nhân viên…

– Các bài toán được cấu tạo bởi 2 thành phần cơ bản:

  • Input: các thông tin đã có.
  • Output: Các thông tin cần tìm từ Output.

✅ Mọi người cũng xem : mlb là thương hiệu gì

2. Khái niệm thuật toán

– Thuật toán để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo 1 trình tự xác định sao cho sau khi thực hiện dãy thao tác ấy, từ Input của bài toán, ta nhận ra Output cần tìm.

– Ví dụ: Tìm giá trị lớn nhất của 1 dãy số nguyên.

=> Ta có 3 bước thực hiện như sau:

* Xác định BT

– Input: Số nguyên dương N và dãy N số nguyên a1, a2, …, aN.

– Output: giá trị lớn nhất Max của dãy số.

* Ý tưởng

– Khởi tạo tổng giá trị Max = a1.

– Lần lượt với i từ 2 đến N so sánh ai với Max, nếu ai>Max thì Max= ai.

* Thuật toán:

Cách liệt kê:

  • B1: Nhập N và dãy a1,…,aN;
  • B2: Max (leftarrow) a1, i (leftarrow) 2;
  • B3: nếu i>N thì đưa tổng giá trị Max rồi kết thúc;
  • B4: Nếu ai>Max thì Max (leftarrow) ai;
  • B5: i (leftarrow) i+1 rồi quay lại bước 3;

Cách lập sơ đồ khối:

– Thuật toán còn được diễn tả bằng sơ đồ khối.

– Quy định:

  • Hình ô van: các thao tác nhập, xuất dữ liệu.
  • Hình thoi: Thao tác so sánh.
  • Hình chữ nhật: Các phép toán.
  • Mũi tên: trình tự thực hiện các thao tác.

Ví dụ: Mô phỏng việc thực hiện thuật toán với N=8 và dãy số: 5, 1, 4, 7, 6, 3, 15, 11

Ds

5

1

4

7

6

3

15

11

i

2

3

4

5

6

7

8

9

Max

5

5

5

7

7

7

15

15

=> Các tính chất của thuật toán:

  • Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực hiện các thao tác.
  • Tính xác định: Sau một số lần thực hiện thao tác, hoặc là kết thúc hoặc xác định để thực hiện bước tiếp theo.
  • Tính đúng đắn: Sau khi thuật toán kết thúc, ta phải nhận được Output cần tìm.

✅ Mọi người cũng xem : phương và chiều của lực là gì

3. một vài ví dụ về thuật toán

Ví dụ 1: Kiểm tra tính nguyên tố của một số nguyên dương.

– Xác định bài toán:

  • Input: Số nguyên dương N.
  • Output: “N là số nguyên tố” hoặc “N không là số nguyên tố”.

– Ý tưởng: Ta nhớ lại định nghĩa: một số nguyên dương N là số nguyên tố nếu nó có đúng 2 ước số khác nhéu là 1 và chính nó. do đó ta có:

  • Nếu N = 1 thì N không là nguyên tố.
  • Nếu 1 < N < 4 thì N là số nguyên tố.
  • Nếu N (ge) 4 và không có ước số trong phạm vi từ 2 đến phần nguyên căn bậc 2 của N thì N là số nguyên tố.

– Thuật toán:

  • B1: Nhập số nguyên dương N.
  • B2: Nếu N = 1 thì thông báo N không là số nguyên tố rồi kết thúc.
  • B3: Nếu N < 4 thì thông báo N là số nguyên tố rồi kết thúc.
  • B4: i (leftarrow) 2
  • B5: Nếu N>[](*) thì thông báo N là số nguyên tố rồi kết thúc.
  • B6: Nếu N chia hết cho i thì thông báo N là số không nguyên tố rồi kết thúc.
  • B7: i (leftarrow) i + 1 rồi quay lại bước 5.

Ví dụ 2: Bài toán sắp xếp

Cho dãy A gồm N số nguyên a1, a2, a3, …,aN. Cần sắp xếp các số hạng để dãy A trở thành dãy không Giảm (tức là số hạng trước không lớn hơn số hạng sau)

– Xác định bài toán:

  • Input: Dãy A gồm N số nguyên
  • Output: Dãy A được sắp xếp thành dãy không Giảm.

Thuật toán sắp xếp bằng tráo đổi (Exchange Sort)

– Ý tưởng: Với 2 số liền kề, nếu số trước lớn hơn số sau ta đổi chổ cho nhau. Việc đó lặp lai, khi không còn sự đổi chổ nào nữa.

– Thuật toán

Cách liệt kê:

  • B1: Nhập vào n và dãy số nguyên a1, . . . ,aN;
  • B2: M (leftarrow) N;
  • B3: Nếu M<2 thì in dãy đã sắp xếp rồi kết thúc;
  • B4. M (leftarrow) M – 1; i (leftarrow) 0;
  • B5: i (leftarrow) i + 1;
  • B6: Nếu i > M thì quay lại bước 3;
  • B7. Nếu ai > ai+1 thì tráo đổi cho nhau;
  • B8: Quay lại bước 5; 

Ví dụ 3: Bài toán tìm kiếm

Cho dãy A gồm N số nguyên khác nhéu: a1…aN. và một số nguyên k. Cần biết có hay không những số i mà ai=k. Nếu có hãy cho biết chỉ số đó.

Thuật toán tìm kiếm tuần tự:

– Xác định bài toán

  • Input: dãy A gồm N số nguyên khác nhau: a1…aN và số nguyên k.
  • Output: chỉ số i mà ai=k hoặc thông báo không có số hạng nào của dãy A có tổng giá trị là k.

– Ý tưởng: lần lượt từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khoá cho đến khi hoặc gặp một vài hạng bằng khoá hoặc dãy đã được xét hết và không có tổng giá trị nào bằng khoá. Trong trường hợp thứ 2 dãy A không có số hạng nào bằng khoá…

– Thuật toán

Liệt kê:

  • B1: Nhập vào N, các số hạng a1, . . . ,aN và khóa k;
  • B2: i(leftarrow)1;
  • B3: Nếu ai=k thì thông báo chỉ số i rồi kết thúc;
  • B4. i (leftarrow)i+1;
  • B5: Nếu i>N thì thông báo dãy A không có số hạng nào có giá trị bằng k rồi kết thúc;
  • B6: Quay lại bước 3;

Dãy A có N = 7 khóa k = 10

Tìm chỉ số i để ai = k.

i

1

2

3

4

5

6

7

ai

7

12

4

6

11

10

8

Ghi chú: k = 10 → i = 6

Trong thuật toán trên, i là biến chỉ số và nhận giá trị nguyên lần lượt từ 1 đến N + 1



Các câu hỏi về i trong thuật toán là gì


Nếu có bắt kỳ câu hỏi thắc mắt nào vê i trong thuật toán là gì hãy cho chúng mình biết nhé, mõi thắt mắt hay góp ý của các bạn sẽ giúp mình cải thiện hơn trong các bài sau nhé

Bài viết liên quan

Quá trình liền vết thương diễn ra thế nào?
Tiểu Thương Là Gì? Tầm ảnh Hưởng Của Tiểu Thương đến Nền Kinh Tế
Thương lục có độc, đừng nhầm lẫn với Nhân sâm – YouMed

Chuyên mục: Hỏi Đáp

Bài viết trước « Hủy u gan qua da bằng sóng cao tần – Bệnh Viện FV
Bài viết sau Bài 36: Vật liệu kĩ thuật điện »

Reader Interactions

Trả lời Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Sidebar chính

Sự thật về yêu quái khiến Tôn Ngộ Không “bó tay”, Phật Tổ “dè chừng”

12 tác dụng của tinh trùng cho sức khỏe, làn da và mái tóc – MarryBaby

Cùng học tiếng LaTinh với uTalk

13 sự thật về tinh dịch và tinh trùng: Thành phần, khối lượng

Hồ Tinh Bột Là Gì – Hồ Tinh Bột Gồm Những Gì

Kinh nghiệm dùng dầu dưỡng tóc hiệu quả và top 14 sản phẩm tốt

Tinh dầu hồi: Công dụng tuyệt vời đối với sức khỏe và đời sống

Recent Posts

  • Quá trình liền vết thương diễn ra thế nào?
  • Tiểu Thương Là Gì? Tầm ảnh Hưởng Của Tiểu Thương đến Nền Kinh Tế
  • Thương lục có độc, đừng nhầm lẫn với Nhân sâm – YouMed
  • Đặt câu với từ yêu nước thương nòi
  • Khi con tim bị tổn thương

Recent Comments

Không có bình luận nào để hiển thị.

Bản quyền © 2023 thuộc về HLink.Vn * Kênh Thông Tin Tổng Hợp Chính Thống