-
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
Trung tâm học Python Ví dụ chạy được, NumPy, pandas và nhiều nội dung khác Trung tâm học C và C++ Con trỏ, bộ nhớ, STL và C++ hiện đại Trung tâm học C#C# cơ bản, OOP, LINQ, async và bài tập .NET 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++
- Thử thách
Mô hình ngôn ngữ chọn token tiếp theo từ một phân phối xác suất. Hai thiết lập định hình phân phối đó:
- Top-k: chỉ giữ k token có logit cao nhất (nếu logit bằng nhau, chỉ số nhỏ hơn xếp trên).
- Temperature T: chia các logit được giữ cho T trước khi tính softmax. T thấp làm lựa chọn dễ đoán hơn; T cao làm nó ngẫu nhiên hơn.
Để có thể kiểm thử, số ngẫu nhiên được cho sẵn:
- Giữ k token đứng đầu, rồi liệt kê chúng theo chỉ số ban đầu (tăng dần).
- Tính softmax(logit / T) trên các token được giữ (trừ giá trị lớn nhất trước khi tính e^x).
- Đi qua danh sách và cộng dồn xác suất; trả về chỉ số của token đầu tiên làm tổng cộng dồn lớn hơn
random_value. Nếu không có token nào (do làm tròn), trả về token được giữ cuối cùng.
Với k = 1, đây là giải mã tham lam: luôn chọn token khả năng cao nhất.
Hãy cài đặt sample_token(logits, temperature, k, random_value).
Đầu vào
logits: Mỗi token trong từ vựng một điểm.
temperature: T, lớn hơn 0.
k: Số token đứng đầu cần giữ.
random_value: Một số ngẫu nhiên trong [0, 1).
Đầu ra
Trả về chỉ số của token được chọn.
Ràng buộc
1 ≤ k ≤ số logit ≤ 1.000
0 < temperature ≤ 100, 0 ≤ random_value < 1
-100 ≤ mỗi logit ≤ 100
Ví dụ
Ví dụ 1
Đầu vào:
k = 1
logits = [1.0, 3.0, 2.0, 0.5]
temperature = 1.0
random_value = 0.99
Kết quả mong đợi:
1
Giải thích
k = 1 chỉ giữ logit cao nhất, 3.0 ở chỉ số 1. Xác suất của nó là 1, nên nó được chọn bất kể số ngẫu nhiên: đây là giải mã tham lam.
Ví dụ 2
Đầu vào:
k = 2
logits = [2.0, 1.0, 0.0]
temperature = 1.0
random_value = 0.8
Kết quả mong đợi:
1
Giải thích
Top-2 giữ chỉ số 0 và 1 (logit 2 và 1). softmax cho khoảng 0.731 và 0.269. Tổng cộng dồn là 0.731 sau chỉ số 0 (chưa vượt 0.8) và 1 sau chỉ số 1, nên chọn chỉ số 1.
Tham khảo
-
Ví dụ 1 Chưa chạyĐầu vào:
k = 1 logits = [1.0, 3.0, 2.0, 0.5] temperature = 1.0 random_value = 0.99Kết quả mong đợi:1Kết quả của bạn -
Ví dụ 2 Chưa chạyĐầu vào:
k = 2 logits = [2.0, 1.0, 0.0] temperature = 1.0 random_value = 0.8Kết quả mong đợi:1Kết quả của bạn
Có 4 kiểm tra ẩn sẽ chạy khi bạn nộp bài.
Trình biên dịch và gỡ lỗi C# online
Viết, biên dịch, chạy và debug C# online. Đặt breakpoint, step into hoặc step over và xem biến cùng object lồng nhau trong IDE hỗ trợ nhiều tệp, lưu workspace, chia sẻ và cộng tác trực tiếp—không cần cài đặt.
🚀 350,747 tổng số lượt thực thi (1 trong tháng này)
Luyện C# 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 C# / .NET trực tuyến này
CodeUtility C# Executor cho phép bạn viết và chạy mã C# thật trực tiếp trong trình duyệt - không cần cài đặt, thiết lập Visual Studio hay .NET SDK. Công cụ này được vận hành bởi môi trường sandbox an toàn hỗ trợ .NET runtime và các phiên bản C# hiện đại, bao gồm C# 9 trở lên.
Công cụ này dùng dotnet-script phía dưới để biên dịch và thực thi mã của bạn với đúng hành vi .NET, cho phép bạn thử nghiệm cả các tính năng C# cơ bản lẫn nâng cao như LINQ, async/await, pattern matching và generics.
Bạn có thể thử các script đơn giản, hàm và luồng logic, hoặc khám phá các khái niệm như class, struct, kế thừa và interface - tất cả trong một môi trường code sạch, không xao nhãng.
Dù bạn đang học C#, kiểm thử thuật toán hay thử nghiệm các tính năng .NET, CodeUtility C# Executor mang đến cách chạy mã C# nhanh, an toàn và tin cậy ngay từ bất kỳ trình duyệt nào.
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ã.
💡 C# cơ bản & ví dụ bạn có thể thử ở trên
1. Khai báo biến và hằng số
C# sử dụng khai báo biến kiểu tĩnh (strongly-typed). Dùng const cho hằng số tại thời điểm biên dịch và readonly cho hằng số tại thời điểm chạy.
int age = 30;
double pi = 3.14159;
char grade = 'A';
string name = "Alice";
bool isActive = true;
// Hằng số
const int MaxUsers = 100;
const string Company = "CodeUtility";
2. Cấu trúc điều kiện (if / switch)
Dùng if, else if và switch để điều khiển luồng.
int x = 2;
if (x == 1)
{
Console.WriteLine("Một");
}
else if (x == 2)
{
Console.WriteLine("Hai");
}
else
{
Console.WriteLine("Khác");
}
switch (x)
{
case 1:
Console.WriteLine("Một");
break;
case 2:
Console.WriteLine("Hai");
break;
default:
Console.WriteLine("Khác");
break;
}
3. Vòng lặp
C# hỗ trợ các vòng lặp for, while và foreach.
for (int i = 0; i < 3; i++)
{
Console.WriteLine(i);
}
int n = 3;
while (n > 0)
{
Console.WriteLine(n);
n--;
}
4. Mảng
Mảng lưu trữ tập hợp có kích thước cố định gồm các phần tử cùng kiểu.
int[] numbers = { 10, 20, 30 };
Console.WriteLine(numbers[1]);
5. Thao tác với List
Dùng List<T> cho các tập hợp động.
List<int> nums = new List<int> { 1, 2, 3 };
nums.Add(4);
nums.Remove(2);
foreach (int n in nums)
{
Console.Write(n + " ");
}
6. Nhập/Xuất Console
Dùng Console.WriteLine và Console.ReadLine cho I/O cơ bản.
Console.Write("Nhập tên của bạn: ");
string name = Console.ReadLine();
Console.WriteLine($"Xin chào, {name}!");
7. Hàm
Định nghĩa phương thức với kiểu trả về, tên và tham số.
int Add(int a, int b)
{
return a + b;
}
Console.WriteLine(Add(3, 4));
8. Từ điển (Dictionary)
Dictionary<TKey, TValue> lưu trữ các cặp khóa-giá trị.
Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Alice"] = 30;
Console.WriteLine(ages["Alice"]);
9. Xử lý ngoại lệ
Xử lý lỗi thời gian chạy bằng try, catch và finally.
try
{
throw new Exception("Đã có lỗi xảy ra");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
10. I/O Tệp
Dùng File và StreamReader/StreamWriter cho các thao tác với tệp.
File.WriteAllText("file.txt", "Xin chào Tệp");
string text = File.ReadAllText("file.txt");
Console.WriteLine(text);
11. Xử lý chuỗi
Chuỗi C# hỗ trợ các phương thức như Length, Substring, Contains.
string message = "Xin chào Thế giới";
Console.WriteLine(message.Length);
Console.WriteLine(message.Substring(0, 5));
Console.WriteLine(message.Contains("World"));
12. Lớp & Đối tượng
C# hỗ trợ lập trình hướng đối tượng thông qua class và object.
class Person
{
public string Name;
public Person(string name) => Name = name;
public void Greet() => Console.WriteLine($"Xin chào, tôi là {Name}");
}
Person p = new Person("Alice");
p.Greet();