-
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ê
Hàm mất mát biến các sai sót của mô hình thành một con số cần làm nhỏ nhất. Hãy cài đặt compute_loss(kind, predictions, targets) cho ba hàm mất mát phổ biến, với n là số dự đoán:
"mse"(sai số bình phương trung bình): trung bình của (p - t)²"mae"(sai số tuyệt đối trung bình): trung bình của |p - t|"binary_cross_entropy": -trung bình của [t × ln(p) + (1 - t) × ln(1 - p)]. Trước tiên hãy giới hạn mỗi dự đoán p trong khoảng [0.0000001, 0.9999999] để không bao giờ tính ln(0).
Đầu vào
kind: "mse", "mae" hoặc "binary_cross_entropy".
predictions: Các dự đoán của mô hình.
targets: Các giá trị đúng (cùng độ dài). Với cross-entropy, chúng là 0 hoặc 1 và dự đoán nằm trong khoảng 0 đến 1.
Đầu ra
Trả về giá trị mất mát dưới dạng số thực.
Ràng buộc
1 ≤ độ dài ≤ 1.000
-1.000 ≤ mỗi giá trị ≤ 1.000 (với cross-entropy: 0 ≤ p ≤ 1 và t ∈ {0, 1})
Ví dụ
Ví dụ 1
Đầu vào:
kind = "mse"
predictions = [2.5, 0.0, 2.0]
targets = [3.0, -0.5, 2.0]
Kết quả mong đợi:
0.166667
Giải thích
Bình phương sai số: 0.5² = 0.25, 0.5² = 0.25 và 0² = 0. Trung bình là 0.5 / 3 ≈ 0.166667.
Ví dụ 2
Đầu vào:
kind = "binary_cross_entropy"
predictions = [0.9, 0.2]
targets = [1.0, 0.0]
Kết quả mong đợi:
0.164252
Giải thích
-(ln(0.9) + ln(1 - 0.2)) / 2 = -(-0.105361 - 0.223144) / 2 ≈ 0.164252. Dự đoán đúng và tự tin cho giá trị mất mát nhỏ.
Tham khảo
-
Ví dụ 1 Chưa chạyĐầu vào:
kind = "mse" predictions = [2.5, 0.0, 2.0] targets = [3.0, -0.5, 2.0]Kết quả mong đợi:0.166667Kết quả của bạn -
Ví dụ 2 Chưa chạyĐầu vào:
kind = "binary_cross_entropy" predictions = [0.9, 0.2] targets = [1.0, 0.0]Kết quả mong đợi:0.164252Kết quả của bạn
Có 5 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ả.
Chạy Swift online
Viết, chạy và gỡ lỗi code Swift trực tuyến trong môi trường Swift dòng lệnh. Quản lý nhiều tệp, lưu workspace và chia sẻ code mà không cần cài Xcode.
🚀 19,043 tổng số lượt thực thi (611 trong tháng này)
Luyện Swift 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 Swift trực tuyến này
Trình thực thi Swift CodeUtility cho phép bạn viết và chạy mã Swift trực tiếp trên trình duyệt - không cần Xcode, SDK hay cài đặt macOS. Công cụ chạy các trình biên dịch Swift thực trong các sandbox cách ly để mang lại hành vi Swift gốc, chính xác.
Công cụ này hỗ trợ nhiều phiên bản Swift - 5.7, 5.9 và mới nhất - giúp bạn linh hoạt khám phá tính năng ngôn ngữ mới và duy trì tương thích với mã Swift cũ.
Rất phù hợp cho các lập trình viên học cú pháp Swift, kiểm thử thuật toán, hoặc thử nghiệm mã cho iOS, macOS và Swift phía máy chủ mà không cần cài công cụ hay trình giả lập cục bộ.
Mỗi đoạn mã chạy an toàn trong môi trường Swift dạng container, đảm bảo phản hồi thực từ trình biên dịch và 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 Swift cơ bản cho người mới bắt đầu
1. Khai báo biến và hằng số
Dùng var cho biến và let cho hằng số trong Swift.
var age = 30
let pi = 3.14159
var name = "Alice"
let isActive = true
// Hằng số không thể gán lại
// pi = 3.14 // ❌ Lỗi
2. Cấu trúc điều kiện (if / switch)
Dùng if, else if, else cho logic, và switch cho nhiều nhánh.
let number = 2
if number == 1 {
print("Một")
} else if number == 2 {
print("Hai")
} else {
print("Khác")
}
switch number {
case 1:
print("Một")
case 2:
print("Hai")
default:
print("Khác")
}
3. Vòng lặp
Swift hỗ trợ các vòng lặp for-in, while và repeat-while.
for i in 0..<3 {
print(i)
}
var n = 3
while n > 0 {
print(n)
n -= 1
}
4. Mảng
Mảng lưu các tập hợp giá trị có thứ tự.
var numbers = [10, 20, 30]
print(numbers[1])
5. Thao tác với mảng
Dùng các phương thức mảng như append và removeLast.
var nums = [1, 2, 3]
nums.append(4)
nums.removeLast()
for n in nums {
print(n)
}
6. Nhập/Xuất console
Dùng print() để xuất ra. Nhập liệu cần cấu hình thêm trong Swift Playgrounds hoặc Xcode.
let name = "Alice"
print("Xin chào, \(name)")
7. Hàm
Định nghĩa các hàm có thể tái sử dụng với tham số và giá trị trả về.
func add(a: Int, b: Int) -> Int {
return a + b
}
print(add(a: 3, b: 4))
8. Từ điển
Từ điển lưu các cặp khóa-giá trị.
var ages = ["Alice": 30]
print(ages["Alice"] ?? 0)
9. Xử lý lỗi
Swift sử dụng do-catch để xử lý lỗi.
enum MyError: Error {
case runtimeError(String)
}
do {
throw MyError.runtimeError("Đã có lỗi xảy ra")
} catch let error {
print(error)
}
10. I/O tệp
Swift dùng FileManager hoặc các phương thức của String cho I/O tệp.
let text = "Xin chào, Tệp"
try text.write(toFile: "file.txt", atomically: true, encoding: .utf8)
let content = try String(contentsOfFile: "file.txt")
print(content)
11. Thao tác với chuỗi
Dùng các phương thức như count, contains, uppercased(), v.v.
let text = "Xin chào Thế giới"
print(text.count)
print(text.contains("Thế giới"))
print(text.uppercased())
12. Lớp & Đối tượng
Swift hỗ trợ OOP với class và init.
class Person {
var name: String
init(name: String) {
self.name = name
}
func greet() {
print("Xin chào, tôi là \(name)")
}
}
let p = Person(name: "Alice")
p.greet()
13. Optional
Swift dùng ? và ! để xử lý giá trị tùy chọn (optional).
var name: String? = "Alice"
print(name ?? "Không rõ")
if let unwrappedName = name {
print(unwrappedName)
}