Tìm hiểu thuật toán phép tính giai thừa (giống hàm Fact)

  • Thread starter Thread starter aduy89
  • Ngày gửi Ngày gửi
Liên hệ QC

aduy89

Thành viên mới
Tham gia
14/8/18
Bài viết
18
Được thích
1
bạn nào có code của hàm này hok
 
Chủ thớt chắc ít nói lắm nhỉ.
Mình mới tham gia. Ý mình là hàm Fact() , giai thừa của một số...
Mình mới học vba , đang ngồi tự học, tự đọc, mình nghĩ đến 1 bài toán để tự viết hàm... tính tích các số tự nhiên liên tiếp,
Ngồi mãi mới miên man được nửa bài. Nhớ ra ngày xưa học Giai thừa. Google úi zới hàm Fact() o_O
...
hàm có sẵn rồi...
nên muốn hiểu nốt code của hàm đó
 
Upvote 0
...
hàm có sẵn rồi...
nên muốn hiểu nốt code của hàm đó
1. Hiểu làm cái gì? Nếu chỉ bình thường thì code rất đơn giản. Nếu muốn học ví dụ hàm đệ quy thì code phức tạp hơn 1 chút. Nếu muón học giới hạn số thì phức tạp hơn nữa.
2. Code bằng ngôn ngữ nào? Nếu C/C++ hay Python thì trên mạng có cả đống.
 
Upvote 0
1. Hiểu làm cái gì? Nếu chỉ bình thường thì code rất đơn giản. Nếu muốn học ví dụ hàm đệ quy thì code phức tạp hơn 1 chút. Nếu muón học giới hạn số thì phức tạp hơn nữa.
2. Code bằng ngôn ngữ nào? Nếu C/C++ hay Python thì trên mạng có cả đống.
dạ em mới đọc sách hàm đệ qui và em đã viết dc thê này :

Function giaithua(n As Single)
If n > 0 Then
giaithua = n * giaithua(n - 1)
ElseIf n = 0 Then giaithua = 1
End If
End Function

Em cảm ơn bác ạ ạ ạ
 
Lần chỉnh sửa cuối:
Upvote 0
Có sẵn? Có ở chỗ nào? Theo tôi hiểu thì người ta cần code của hàm, tức nội dung của hàm đó.
Dạ vâng. Đó ý của em. Tại em mới tham gia diễn đàn, và cũng mới chập chững tìm hiểu VBA nên câu hỏi hơi " ...".
Nhưng từ những góp ý của mọi người mà e tìm được cách viết được cái hàm "giaithua" đó , chắc nó cũng sư dụng giống hàm FACT()
..
Em xin chân thành cảm ơn góp y cả nhà. Lần sau e post bài cẩn thận hơn.
 
Upvote 0
...................

......A_H.JPG
 
Upvote 0
dạ hàm đó e biết.. em muốn biết nội dung code hàm Fact()
em viết được rồi cảm ơn bác
Code cũng dựa vào cái có sẳn để viết ra.
Nhưng so về nhanh, gọn, tốc độ thì thua xa bác Bill (người ta có vài chục ngàn kỹ sư).
 
Upvote 0
dạ em mới đọc sách hàm đệ qui và em đã viết dc thê này :

Function giaithua(n As Single)
If n > 0 Then
giaithua = n * giaithua(n - 1)
ElseIf n = 0 Then giaithua = 1
End If
End Function

Em cảm ơn bác ạ ạ ạ
Chưa đúng!!!!

Sửa lại tiêu đề bài viết đi rồi tính tiếp!!!!
 
Upvote 0
Code cũng dựa vào cái có sẳn để viết ra.
Nhưng so về nhanh, gọn, tốc độ thì thua xa bác Bill (người ta có vài chục ngàn kỹ sư).
Dạ, em mới tìm hiểu nên làm so sánh được mới ai..
Em học luôn đặt câu hỏi " Nó tạo ra thế nào ?" và " Họ viết được sao mình hok viết được"... Thời gian tới chắc em lại làm phiền GPE nhiều rồi.
Thank
 
Upvote 0
Dạ, em mới tìm hiểu nên làm so sánh được mới ai..
Em học luôn đặt câu hỏi " Nó tạo ra thế nào ?" và " Họ viết được sao mình hok viết được"... Thời gian tới chắc em lại làm phiền GPE nhiều rồi.
Thank
Vậy bây giờ bạn hiểu giai thừa là gì chưa ?
Cái này trong toán. Trong Excel có sẵn hàm cứ thế dùng cho sướng đời.
 
Upvote 0
Ai mà chả biết nó có. Chả cần cài tới tận Excel 2016.

Trời, nói thế mà vẫn không hiểu.

Giả dụ Kiều Mạnh viết hàm myFact (ở dưới chỉ có tính chất mô phỏng) trong DLL
Mã:
Function myFact ...
hic hic
blala
End Function
Và anh A dùng đồ của Kiều Mạnh. Dĩ nhiên là anh A biết có hàm myFact rồi, chả nhẽ mua đồ của Kiều Mạnh mà lại không biết nó có gì thì mua mèo trong bao tải à?

Ý anh A là muốn biết cái "hic hic, blala" kia của Kiều Mạnh mặt mũi thế nào.

Tôi cũng là người nên có thể nhiều cái chưa đoán được, nhưng một khi tôi đã góp ý thì 98% là tôi hiểu cái mình cần góp ý.
 
Upvote 0
Vậy bây giờ bạn hiểu giai thừa là gì chưa ?
Cái này trong toán. Trong Excel có sẵn hàm cứ thế dùng cho sướng đời.
Có người cứ theo lối mòn vừa nhanh vừa an toàn, có người phá bụi rậm tìm đường đi mới bất chấp gai góc nguy hiểm, chỉ sợ khó khăn mà bỏ cuộc
 
Upvote 0
Code cũng dựa vào cái có sẳn để viết ra.
Nhưng so về nhanh, gọn, tốc độ thì thua xa bác Bill (người ta có vài chục ngàn kỹ sư).
Người ta đang học VBA, muốn tìm hiểu, và người ta đặt ra bài toán giai thừa cho mình và mày mò tìm cách viết.
Mình mới học vba , đang ngồi tự học, tự đọc, mình nghĩ đến 1 bài toán để tự viết hàm... tính tích các số tự nhiên liên tiếp,
Và người ta tò mò, không biết bác Bill viết thế nào. Muốn học viết code thôi chứ chắc chắn người ta không có ý định viết để thay thế hàm của bác Bill đâu. Yên tâm đi.
 
Upvote 0
dạ em mới đọc sách hàm đệ qui và em đã viết dc thê này :

Function giaithua(n As Single)
If n > 0 Then
giaithua = n * giaithua(n - 1)
ElseIf n = 0 Then giaithua = 1
End If
End Function

Em cảm ơn bác ạ ạ ạ
Bài #13 phê chính xác. Code này chưa đúng.
FACT(5.5) = 120 ' hàm của Excel
giaithua(5.5) = 0
 
Upvote 0
Chưa đúng!!!!

Sửa lại tiêu đề bài viết đi rồi tính tiếp
Bài #13 phê chính xác. Code này chưa đúng.
FACT(5.5) = 120 ' hàm của Excel
giaithua(5.5) = 0
Dạ
Nó phù hợp số nguyên dương thôi ạ.
Fact(3.5)= 6 nhưng (3.5)! =11.63.... cơ
Cú pháp
FACT(number)
Cú pháp hàm FACT có các đối số sau đây:
  • Number Bắt buộc. Số không âm mà bạn muốn tìm giai thừa của nó. Nếu number không phải là số nguyên thì nó bị cắt cụt.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom