1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập lớn cuối kỳ học phần toàn rời rạc

15 1 0

Đ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

Thông tin cơ bản

Tiêu đề Bài Tập Lớn Cuối Kỳ Học Phần Toán Rời Rạc
Tác giả Sinh Viên Khoa Kỹ Thuật Cơ – Điện – Máy Tính
Trường học Đại Học Văn Lang
Chuyên ngành Toán Rời Rạc
Thể loại Bài tập lớn
Năm xuất bản 2022
Thành phố Hồ Chí Minh
Định dạng
Số trang 15
Dung lượng 1,43 MB

Nội dung

Viết một đoạn khoảng 300 từ giới thiệu về ứng dụng của Toán rời rạc trong ngành Kỹ thuật phần mềm.Toán rời rạc là môn cơ sở ngành của đại đa số những sinh viên có liên quan đến Công nghệ

Trang 1

KHOA KỸ THUẬT CƠ – ĐIN V MY TNH

- □ □ -

BI TẬP LỚN CUỐI KỲ

HỌC PHẦN: TON RỜI RẠC

Mã Học Phần: 221_71SEDM30013_02

H Ch" Minh, tháng 11 năm 2022

Trang 2

BI TẬP LỚN CUỐI KỲ

BI 1 (1,0 điểm) Viết một đoạn khoảng 300 từ giới thiệu

về ứng dụng của Toán rời rạc trong ngành Kỹ thuật phần mềm

Toán rời rạc là môn cơ sở ngành của đại đa số những sinh viên có liên quan đến Công nghệ thông tin Vì thế, đây là một môn đặc biệt cần thiết đối với bất kì những ai theo học ngành IT Toán rời rạc cung cấp cho nhiều người có kiến thức cơ bản về cấu trúc và

lý thuyết đồ thị cũng như những ứng dụng của chúng vào một số bài toán, tình huống cụ thể như (lên lịch làm việc, xếp cặp, ) Ngoài ra lý thuyết đồ thị giúp bạn tạo ra mạng và truyền thông tin đồng thời giải được nhiều bài toán liên quan chẳng hạn như là giải thuật BFS cũng thường được thấy trong những rounter nhằm xác định lối đi tối ưu nhất Bên cạnh đó, cây thì nhờ vậy mà có phép huffman và nén thông tin hoặc giúp cây điều khiển, xây dựng chiến thuật min-max được ứng dụng trong trí tuệ nhân tạo nhằm xử lý các bài toán về trò chơi như là cờ và số học Xây dựng hệ cây tiền tố, hậu tố để máy tính hiểu và có thể tính toán các phép tính thông thường

+ Lý thuyết quan hệ và đại số quan hệ giúp con người thiết lập hệ quản trị cơ sở dữ liệu

+ Giúp hiểu biết sâu hơn về các giải thuật, cấu trúc dữ liệu + Học về độ thay đổi của hàm giúp ta hiểu thuật toán và từ

đó có thể chọn được các thuật toán phù hợp

+ Lý thuyết này có nhiều ứng dụng trong Cyptography Thậm chí toán rời rạc có thể giúp con người học cách thức xử lý của máy tính khi xử lý từng con số rời rạc đó

Trang 3

Thuật Toán:

Procedure Tinh:

For i in listnhap:

Tong += i

Print(“Tổng dãy số là: ”, Tong)

Chương Trình:

print ( "Viết hàm tính tổng các số nguyên trong một danh sách" )

print ( 'Nhập vào dãy các số cách nhau bởi khoảng trắng:' )

dayGiaTri = input ()

danhSachGiaTri = dayGiaTri.split()

tongDaySo = 0

try :

for i in danhSachGiaTri:

tongDaySo += int (i)

print ( "Tổng của dãy số này là:" , str (tongDaySo))

except :

print ( "Giá Trị Không Hợp Lệ" )

Kết Quả:

Câu 3: Viết chương trình sắp xếp kiểu nổi bọt cho dãy: 16,

2,13, 1, 5, 4, 9, 7, 2, 4, 15, 17, 21, 24, 26, 28, 31, 33, 35, 37, 39

Thuật Toán:

Procedure Bubble_Sort():

For i:= 1 to n-1

For j := 1 to n – i

If a(j) > a(j + 1) then đổi vị trí a(j) và a(j +1)

Print( kết quả )

Chương Trình:

defbubbleSort(listnhap):

n = len(listnhap)

for i in range(n-1):

Trang 4

for j in range(0, n-i-1):

listnhap[j] > listnhap[j + 1] :if

listnhap[j], listnhap[j + 1]=listnhap[j + 1], listnhap[j] listnhap = [16, 2,13, 1, 5, 4, 9, 7, 2,4, 15, 17, 21, 24, 26, 28, 31,

33, 35, 37, 39]

print("List ban đầu có giá trị là: ")

print(listnhap)

print("Sau khi sắp xếp là: ")

bubbleSort(listnhap)

for i in range len( (listnhap)):

print("%d" % listnhap[i], end= )" "

Kết Quả:

BI 4 (1,0 điểm) Tìm số đỉnh, số cạnh bậc ra và bậc vào

của mỗi đỉnh trong các đồ thị sau:

deg(a) = 4 deg (a) = 3 deg (a) =+ 1

deg(b) = 3 deg (b) = 1 deg (b) =+ 2 deg(c) = 3

deg (c) = 2 deg (c) =+ 1

deg(d) = 4 deg (d) = 1 deg (d) =+ 3

Trang 5

-deg(a) = 4 deg (a) = 2 deg (a) =+ 2

deg(b) = 7 deg (b) = 3 deg (b) =+ 4

deg(c) = 3 deg (c) = 2 deg (c) =+ 1

deg(d) = 2 deg (d) = 1 deg (d) =+ 1

-deg(a) = 7 deg (a) = 6 deg (a) =+ 1

deg(b) = 6 deg (b) = 1 deg (b) =+ 5 deg(c) = 7

deg (c) = 2 deg (c) =+ 5

deg(d) = 6 deg (d) = 4 deg (d) =+ 2 deg(e) = 0

deg-(e) = 0 deg+(e) = 0

BI 5 (1,0 điểm) Tìm ma trận kề của các đồ thị sau:

Trang 6

Lời giải:

Lời giải:

BI 6 (1 điểm) Hãy vẽ đồ thị tương ứng với các ma trận kề

sau:

a)

Hnh 1: Đồ thị ma trận kề a

Trang 7

Hnh 2: Đồ thị ma trận kề b

BI 7 (1 điểm) Xác định đồ thị sau có chu trình Euler hay

không, nếu có hãy xây dựng chu trình Nếu không hãy xác định đồ thị đó có đường Euler hay không và xác định nó:

Đồ thị 9 có chu trình Euler: Chu trình Euler là : {a, d, e, c, b, e, b ,d , b, a}

Trang 8

Đồ thị 10 có đường đi Đường đi là {a ,d ,e , d, b, a, e, b,e, c , b, c

,e}

Đồ thị 11 không có chu trình Euler và đường đi

BI 8 (1,0 điểm): Tìm đường đi ngắn nhất giữa a và z của

các đồ thị trọng số như sau:

Trang 9

u S U ∉ S a b c d e z

La(a) =

Lb(b) =

Le(e) =

Ld(d) =

Lz(z) =

7

a, b,

e, d,

Bảng 1: Đường đi ngắn nhất đồ thị 12

- Vậy đường đi ngắn nhất là: a ➜ b ➜ e ➜ d ➜ z = 7

Trang 10

Bảng 2: Đường đi ngắn nhất đồ thị 13

- Vậy đường đi ngắn nhất là: a ➜ c ➜ d ➜ e ➜ g ➜ z = 16

BI 9 (1,0 điểm): Viết chương trình duyệt cây theo Tiền tự,

trung tự và hậu tự cho các cây sau:

a)

Chương Trình:

class Node :

def init (self,key):

Trang 11

print (root.val),

printInorder (root.left)

printInorder (root.right)

def printPostorder (root):

root: if

print (root.val)

printPostorder (root.left)

printPostorder (root.right)

def printPreoder (root):

root: if

print (root.val),

printPreoder (root.left)

printPreoder (root.right)

print ( 'Cay 1' )

root = Node ( ) 'a'

root.left = Node ( ) 'b'

root.right = Node ( ) 'c'

root.left.left = Node ( ) 'd'

root.left.right = Node ( ) 'e'

root.right.left = Node ( ) 'f'

root.right.right = Node ( 'g h' )

root.left.right.left = Node ( ) 'i'

root.left.right.right = Node ( ) 'j'

root.right.right.left = Node ( ) 'k'

root.right.right.right = Node ( ) 'l'

root.left.right.right.left = Node ( 'm' )

root.left.right.right.right = Node ( 'n o' )

root.right.right.right.right = Node ( ) 'p'

print ( 'Preorder: Root, Left, Right' )

printPreoder (root)

print ( 'Inorder: Root, Left, Right' )

printInorder (root)

print ( 'Postorder: Root, Left, Right' )

printPostorder (root)

Kết quả:

Trang 12

b)

Trang 13

Chương Trình:

class Node :

def init (self,key):

self left = None

self right = None

self val= key

def printInorder (root):

root: if

print (root.val),

printInorder (root.left)

printInorder (root.right)

def printPostorder (root):

root: if

print (root.val)

printPostorder (root.left)

printPostorder (root.right)

def printPreoder (root):

root: if

print (root.val),

printPreoder (root.left)

printPreoder (root.right)

print ( 'Cay 2' )

root = Node ( ) 'a'

root.left = Node ( ) 'b'

root.left.left = Node ( ) 'e'

root.left.left.left = Node ( ) 'k'

root.left.left.right = Node ( 'l m' )

root.left.right = Node ( 'f g' )

root.left.right.right = Node ( ) 'n'

root.left.right.right.left = Node ( ) 'r'

root.left.right.right.right = Node ( ) 's'

root.right = Node ( 'c d' )

root.right.left = Node ( ) 'h'

root.right.left.left = Node ( ) 'o'

root.right.right = Node ( 'i j' )

root.right.right.left = Node ( ) 'p'

root.right.right.right = Node ( ) 'q'

print ( 'Preorder: Root, Left, Right' )

printPreoder (root)

print ( 'Inorder: Root, Left, Right' )

printInorder (root)

print ( 'Postorder: Root, Left, Right' )

printPostorder (root)

Kết quả:

Trang 14

BÀI 10 (1,0 đi m) ể Vẽẽ s đồồ m ch cho các đầồu ra c a hàm Boolẽơ ạ ủ

Ngày đăng: 10/04/2024, 06:40

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w