-
Trình Thực Thi
Trình biên dịch Python Trình biên dịch C++ Trình biên dịch C Trình biên dịch Matplotlib Trình thông dịch Node.js Trình thông dịch PHP Trình biên dịch C# / .NET Trình biên dịch Rust Ruby Interpreter Trình biên dịch Java Trình biên dịch Go Trình biên dịch Kotlin Trình biên dịch Swift Trình biên dịch TypeScript
-
Học lập trình
Học Python Ví dụ chạy được, NumPy, pandas và nhiều nội dung khác Học AIMạng nơ-ron, học máy và LLM từ đầu Học C và C++ Con trỏ, bộ nhớ, STL và C++ hiện đại Học C#C# cơ bản, OOP, LINQ, async và bài tập .NET Học MatplotlibBiểu đồ đường, cột, phân tán và tròn với visualizer tương tác Thuật toán Python Tìm kiếm, sắp xếp, đệ quy và trình mô phỏng O(n) Thuật toán C và C++ So sánh cách cài đặt bằng C và C++ Lập trình cho trẻ em Vừa chơi vừa học lập trình!
- Thử tháchMới
- Cho giáo viênMới
- Cập Nhật mới nhất
- Mời mình một ly cà phê
Naive Bayes giả định các đặc trưng độc lập với nhau khi đã biết lớp, và chọn lớp có điểm cao nhất:
score(c) = P(c) × P(x₁ | c) × P(x₂ | c) × … × P(xₙ | c)
Các đặc trưng là danh mục được mã hóa thành số nguyên. Ước lượng xác suất từ dữ liệu huấn luyện:
- P(c) = (số mẫu thuộc lớp c) / (số mẫu)
- P(xⱼ = v | c) = (số mẫu thuộc lớp c có đặc trưng j bằng v + 1) / (số mẫu thuộc lớp c + Kⱼ)
với Kⱼ là số giá trị khác nhau của đặc trưng j trong các mẫu huấn luyện và query. Phần +1 (làm trơn Laplace) giúp một giá trị chưa từng thấy không làm điểm bằng 0.
Trả về lớp có điểm cao nhất; nếu điểm bằng nhau, trả về lớp nhỏ hơn. Nhân nhiều xác suất nhỏ có thể bị tràn dưới, nên hãy cộng logarit thay vì nhân.
Hãy cài đặt naive_bayes_predict(features, labels, query).
Đầu vào
features: Mỗi mẫu huấn luyện một hàng gồm n đặc trưng phân loại.
labels: Lớp của từng mẫu huấn luyện.
query: n đặc trưng của mẫu cần phân loại.
Đầu ra
Trả về lớp dự đoán.
Ràng buộc
1 ≤ số mẫu ≤ 1.000, 1 ≤ n ≤ 20
0 ≤ mỗi giá trị đặc trưng và nhãn ≤ 100
Ví dụ
Ví dụ 1
Đầu vào:
features = [
[0, 1],
[0, 0],
[1, 1],
[1, 0],
[0, 1]
]
labels = [1, 1, 0, 0, 1]
query = [0, 1]
Kết quả mong đợi:
1
Giải thích
Lớp 1 có 3 mẫu và lớp 0 có 2 mẫu. Đặc trưng 1 có các giá trị {0, 1} (K = 2), đặc trưng 2 có {0, 1} (K = 2). score(1) = 3/5 × (3+1)/(3+2) × (2+1)/(3+2) = 0.6 × 0.8 × 0.6 = 0.288. score(0) = 2/5 × (0+1)/(2+2) × (1+1)/(2+2) = 0.4 × 0.25 × 0.5 = 0.05. Lớp 1 thắng.
Ví dụ 2
Đầu vào:
features = [
[0],
[0],
[1]
]
labels = [0, 0, 1]
query = [2]
Kết quả mong đợi:
0
Giải thích
Giá trị 2 chưa từng xuất hiện, nên K = 3 (các giá trị 0, 1 và 2). score(0) = 2/3 × (0+1)/(2+3) ≈ 0.133 và score(1) = 1/3 × (0+1)/(1+3) ≈ 0.083. Nhờ làm trơn, không điểm nào bằng 0, và lớp 0 phổ biến hơn thắng.
Tham khảo
-
Ví dụ 1 Chưa chạyĐầu vào:
features = [ [0, 1], [0, 0], [1, 1], [1, 0], [0, 1] ] labels = [1, 1, 0, 0, 1] query = [0, 1]Kết quả mong đợi:1Kết quả của bạn -
Ví dụ 2 Chưa chạyĐầu vào:
features = [ [0], [0], [1] ] labels = [0, 0, 1] query = [2]Kết quả mong đợi:0Kết quả của bạn
Có 4 kiểm tra ẩn sẽ chạy khi bạn nộp bài. Nếu code chưa vượt qua một bài, bạn sẽ thấy bài đó. Giải xong thử thách để xem tất cả.
Trình biên dịch Kotlin online
Viết, biên dịch, chạy và gỡ lỗi code Kotlin trực tuyến trong IDE đầy đủ tính năng. Làm việc với nhiều tệp, lưu workspace và cộng tác theo thời gian thực.
🚀 71,457 tổng số lượt thực thi (576 trong tháng này)
Luyện Kotlin với thử thách lập trình
Giải các bài tập thực tế ngay trên trình soạn thảo này: chạy kiểm thử mẫu, nộp bài và nhận đánh giá code từ AI.
🧩 Giới thiệu về Trình thực thi Kotlin trực tuyến này
CodeUtility Kotlin Executor cho phép bạn viết, biên dịch và chạy mã Kotlin trực tiếp trên trình duyệt - không cần cài đặt, IDE hay thiết lập SDK. Công cụ dùng trình biên dịch Kotlin thực chạy trong các sandbox cách ly để mang lại trải nghiệm thực thi an toàn và chân thực.
Công cụ này hỗ trợ nhiều phiên bản Kotlin - 1.6, 1.9 và 2.1 - giúp bạn khám phá các cập nhật cú pháp, kiểm thử khả năng tương thích mã, và thử nghiệm các tính năng ngôn ngữ hiện đại như coroutine, data class và sealed interface.
Rất phù hợp cho sinh viên học nền tảng Kotlin, lập trình viên Android thử nghiệm các snippet, hoặc kỹ sư backend kiểm thử logic trong môi trường JVM mà không cần rời trình duyệt.
Mỗi đoạn mã được chạy trong một môi trường thực thi đóng gói an toàn, đảm bảo hiệu năng ổn định và việc thực thi mã an toàn.
Không chỉ là công cụ chạy mã
Sử dụng trình soạn thảo nhiều tệp, terminal thực thi biệt lập, thư viện riêng theo môi trường chạy, không gian làm việc lâu dài, tính năng chia sẻ và cộng tác theo thời gian thực ngay trong cùng một trình thực thi.
Cách sử dụng trình thực thi này?
Chọn môi trường chạy, mở hoặc tạo tệp, viết mã rồi nhấn Chạy. Kết quả xuất hiện trong terminal; người dùng đã đăng nhập có thể lưu tệp trong không gian làm việc, cài thư viện và cộng tác qua liên kết chia sẻ.
- Chọn phiên bản rồi chỉnh sửa tệp hiện tại hoặc mở một tệp khác trong không gian làm việc.
- Chạy mã, nhập dữ liệu trong terminal khi được yêu cầu và xem lại lịch sử chạy đã lưu.
- Sử dụng thư viện, công cụ không gian làm việc, chia sẻ và trò chuyện khi tác vụ cần nhiều hơn một đoạn mã.
💡 Hướng dẫn Cơ bản về Kotlin cho người mới bắt đầu
1. Khai báo biến và hằng số
Kotlin dùng val cho biến bất biến và var cho biến có thể thay đổi.
val name: String = "Alice"
var age: Int = 30
val pi = 3.14 // suy luận kiểu
// Hằng số
const val MAX_USERS = 100
2. Câu điều kiện (if / when)
Dùng biểu thức if hoặc when cho nhiều nhánh.
val x = 2
if (x == 1) {
println("Một")
} else if (x == 2) {
println("Hai")
} else {
println("Khác")
}
when (x) {
1 -> println("Một")
2 -> println("Hai")
else -> println("Khác")
}
3. Vòng lặp
Dùng for, while và do-while để lặp.
for (i in 0..2) {
println(i)
}
var n = 3
while (n > 0) {
println(n)
n--
}
4. Mảng
Kotlin hỗ trợ mảng bằng hàm arrayOf().
val numbers = arrayOf(10, 20, 30)
println(numbers[1])
5. Thao tác với danh sách
Dùng mutableListOf cho danh sách có thể thay đổi.
val nums = mutableListOf(1, 2, 3)
nums.add(4)
nums.removeAt(0)
for (n in nums) {
print("$n ")
}
6. Nhập/Xuất từ console
Dùng readLine() để nhập và println() để xuất.
print("Nhập tên của bạn: ")
val name = readLine()
println("Xin chào, $name")
7. Hàm
Hàm dùng từ khóa fun với kiểu trả về tùy chọn.
fun add(a: Int, b: Int): Int {
return a + b
}
println(add(3, 4))
8. Map
mutableMapOf lưu các cặp khóa-giá trị.
val ages = mutableMapOf("Alice" to 30)
println(ages["Alice"])
9. Xử lý ngoại lệ
Dùng try, catch và finally để xử lý lỗi.
try {
val result = 10 / 0
} catch (e: ArithmeticException) {
println("Lỗi: ${e.message}")
}
10. Nhập/Xuất tệp
Dùng File từ java.io cho các thao tác tệp.
import java.io.File
File("file.txt").writeText("Xin chào tệp")
val text = File("file.txt").readText()
println(text)
11. Thao tác với chuỗi
Chuỗi trong Kotlin hỗ trợ nhiều phương thức và nội suy.
val text = "Hello World"
println(text.length)
println(text.substring(0, 5))
println(text.contains("World"))
12. Lớp và Đối tượng
Các lớp trong Kotlin ngắn gọn và hỗ trợ constructor mặc định.
class Person(val name: String) {
fun greet() = println("Chào, tôi là $name")
}
val p = Person("Alice")
p.greet()
13. An toàn null
Kotlin phân biệt kiểu có thể null và không thể null. Dùng ? và ?: để an toàn.
val name: String? = null
println(name?.length ?: 0)