- ตัวดำเนินการ
-
เรียนรู้
เรียน Python ตัวอย่างที่รันได้, NumPy, pandas และอื่น ๆ เรียน AIโครงข่ายประสาท ML และ LLM ตั้งแต่ศูนย์ เรียน C และ C++ พอยน์เตอร์ หน่วยความจำ STL และ C++ สมัยใหม่ เรียน C#พื้นฐาน C#, OOP, LINQ, async และแบบฝึกหัด .NET เรียน Matplotlibกราฟเส้น แท่ง กระจาย และวงกลม พร้อมตัวแสดงภาพแบบโต้ตอบ อัลกอริทึม Python การค้นหา การเรียงลำดับ รีเคอร์ชัน และภาพจำลอง O(n) อัลกอริทึม C และ C++ เปรียบเทียบการเขียนด้วย C และ C++ เขียนโปรแกรมสำหรับเด็ก เรียนเขียนโปรแกรมผ่านการเล่น!
- โจทย์ใหม่
- สำหรับครูใหม่
- อัปเดต
- เลี้ยงกาแฟสักแก้ว
ความคล้ายคลึงโคไซน์ เปรียบเทียบทิศทางของเวกเตอร์สองตัวโดยไม่สนใจความยาว การค้นหาเชิงความหมายใช้วิธีนี้หาข้อความที่มี embedding คล้ายกัน:
cos(a, b) = (a · b) / (|a| × |b|) โดย |a| = √(a₁² + a₂² + … + aₙ²)
ผลลัพธ์เป็น 1 เมื่อทิศทางเดียวกัน 0 เมื่อตั้งฉากกัน และ -1 เมื่อทิศทางตรงข้าม ถ้าเวกเตอร์ตัวใดเป็นศูนย์ทั้งหมด ให้คืนค่า 0
จงเขียน cosine_similarity(a, b)
อินพุต
a, b: ลิสต์ตัวเลขสองลิสต์ที่มีความยาวเท่ากัน
เอาต์พุต
คืนค่าความคล้ายคลึงโคไซน์เป็นเลขทศนิยม
เงื่อนไข
1 ≤ ความยาว ≤ 1,000
-1,000 ≤ แต่ละค่า ≤ 1,000
ตัวอย่าง
ตัวอย่างที่ 1
อินพุต:
a = [1.0, 0.0]
b = [0.0, 1.0]
ผลลัพธ์ที่คาดหวัง:
0.0
คำอธิบาย
ผลคูณจุดเป็น 0 ดังนั้นเวกเตอร์ทั้งสองตั้งฉากกันและความคล้ายคลึงเป็น 0
ตัวอย่างที่ 2
อินพุต:
a = [1.0, 2.0, 3.0]
b = [2.0, 4.0, 6.0]
ผลลัพธ์ที่คาดหวัง:
1.0
คำอธิบาย
b คือ a คูณ 2: ทิศทางเดียวกัน ดังนั้นความคล้ายคลึงเป็น 1 แม้ความยาวต่างกัน
แหล่งอ้างอิง
-
ตัวอย่างที่ 1 ยังไม่ได้รันอินพุต:
a = [1.0, 0.0] b = [0.0, 1.0]ผลลัพธ์ที่คาดหวัง:0.0เอาต์พุตของคุณ -
ตัวอย่างที่ 2 ยังไม่ได้รันอินพุต:
a = [1.0, 2.0, 3.0] b = [2.0, 4.0, 6.0]ผลลัพธ์ที่คาดหวัง:1.0เอาต์พุตของคุณ
มี 4 การทดสอบที่ซ่อนอยู่จะถูกรันเมื่อคุณส่งคำตอบ ถ้าโค้ดไม่ผ่านข้อใด คุณจะเห็นการทดสอบข้อนั้น แก้โจทย์ให้ได้เพื่อดูทั้งหมด
Online Java Compiler
Write, compile, run, and debug Java code online in a full-featured browser IDE. Work with multiple files, save your workspace, and share or collaborate in real time - no setup required.
🚀 260,408 การดำเนินการทั้งหมด (5,854 ในเดือนนี้)
ฝึก Java ด้วยโจทย์เขียนโค้ด
แก้โจทย์จริงใน editor นี้: รันทดสอบตัวอย่าง ส่งคำตอบ และรับรีวิวโค้ดจาก AI
☕ เกี่ยวกับตัวรัน Java ออนไลน์นี้
CodeUtility Java Executor ให้คุณเขียนและรันโปรแกรม Java ได้โดยตรงในเบราว์เซอร์ของคุณ - ไม่ต้องติดตั้ง ตั้งค่า JDK หรือใช้ IDE ใดๆ ใช้งานผ่านแซนด์บ็อกซ์ที่ปลอดภัยซึ่งรองรับ Java Runtime จริง เวอร์ชัน 8, 11, 17, 21 และ ล่าสุด.
เครื่องมือนี้คอมไพล์และรันโค้ด Java บนคลาวด์ด้วยคอมไพเลอร์ javac จริงและสภาพแวดล้อมรันไทม์ของ Java
ทำให้คุณทดสอบคลาส เมธอด และลอจิกได้เหมือนการทำงานบนเครื่องของคุณจริงๆ
ไม่ว่าคุณจะฝึกการเขียนโปรแกรมเชิงวัตถุ เตรียมตัวสัมภาษณ์งาน หรือทดสอบสแนิปเพตก่อนนำไปรวมเข้ากับระบบ CodeUtility Java Executor มอบสภาพแวดล้อมที่รวดเร็วและเชื่อถือได้ในการรันโค้ด Java จริงได้ทันทีจากอุปกรณ์ใดก็ได้
มากกว่าเครื่องมือรันโค้ด
ใช้ตัวแก้ไขหลายไฟล์ เทอร์มินัลประมวลผลแบบแยกส่วน ไลบรารีเฉพาะรันไทม์ พื้นที่ทำงานถาวร การแชร์ และการทำงานร่วมกันแบบเรียลไทม์ได้จากตัวประมวลผลเดียวกัน
วิธีใช้ตัวประมวลผลนี้
เลือกรันไทม์ เปิดหรือสร้างไฟล์ เขียนโค้ด แล้วเลือกเรียกใช้ ผลลัพธ์จะแสดงในเทอร์มินัล ส่วนผู้ใช้ที่ลงชื่อเข้าใช้สามารถเก็บไฟล์ในพื้นที่ทำงาน ติดตั้งไลบรารี และทำงานร่วมกันผ่านการแชร์ได้
- เลือกเวอร์ชันแล้วแก้ไขไฟล์ปัจจุบัน หรือเปิดไฟล์อื่นในพื้นที่ทำงาน
- เรียกใช้โค้ด ป้อนข้อมูลในเทอร์มินัลเมื่อระบบร้องขอ และตรวจสอบประวัติการเรียกใช้ที่บันทึกไว้
- ใช้ไลบรารี เครื่องมือพื้นที่ทำงาน การแชร์ และแชท เมื่องานของคุณต้องใช้โค้ดมากกว่าหนึ่งส่วน
💡 พื้นฐาน Java และตัวอย่างที่คุณลองได้ด้านบน
1. การประกาศตัวแปรและค่าคงที่
Java กำหนดให้คุณต้องระบุชนิดของตัวแปรทุกตัว ใช้ final สำหรับค่าคงที่
int age = 30;
double pi = 3.14159;
char grade = 'A';
String name = "Alice";
boolean isActive = true;
// ค่าคงที่
final int MAX_USERS = 100;
final String COMPANY = "CodeUtility";
2. เงื่อนไข (if / switch)
ใช้ if, else if และ switch เพื่อควบคุมการไหลของโปรแกรม
int x = 2;
if (x == 1) {
System.out.println("หนึ่ง");
} else if (x == 2) {
System.out.println("สอง");
} else {
System.out.println("อื่นๆ");
}
switch (x) {
case 1:
System.out.println("หนึ่ง");
break;
case 2:
System.out.println("สอง");
break;
default:
System.out.println("อื่นๆ");
}
3. ลูป
ใช้ for, while และ do-while สำหรับการวนซ้ำ
for (int i = 0; i < 3; i++) {
System.out.println(i);
}
int n = 3;
while (n > 0) {
System.out.println(n);
n--;
}
4. อาร์เรย์
อาร์เรย์เก็บชุดข้อมูลชนิดเดียวกันที่มีขนาดคงที่
int[] numbers = {10, 20, 30};
System.out.println(numbers[1]);
5. การจัดการ ArrayList
ใช้ ArrayList สำหรับลิสต์ที่ขนาดยืดหยุ่นได้
import java.util.ArrayList;
ArrayList<Integer> nums = new ArrayList<>();
nums.add(1);
nums.add(2);
nums.add(3);
nums.remove(Integer.valueOf(2));
for (int num : nums) {
System.out.print(num + " ");
}
6. อินพุต/เอาต์พุตคอนโซล
ใช้ Scanner สำหรับรับอินพุตและ System.out สำหรับเอาต์พุต
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
System.out.print("กรุณากรอกชื่อของคุณ: ");
String name = scanner.nextLine();
System.out.println("สวัสดี, " + name);
7. ฟังก์ชัน
กำหนดเมธอดพร้อมชนิดคืนค่าและพารามิเตอร์
public static int add(int a, int b) {
return a + b;
}
System.out.println(add(3, 4));
8. HashMap
ใช้ HashMap สำหรับเก็บข้อมูลแบบคีย์-ค่า
import java.util.HashMap;
HashMap<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
System.out.println(ages.get("Alice"));
9. การจัดการข้อยกเว้น
ใช้ try และ catch เพื่อจัดการข้อยกเว้นขณะรัน
try {
throw new Exception("มีบางอย่างผิดพลาด");
} catch (Exception e) {
System.out.println(e.getMessage());
}
10. การทำงานกับไฟล์ (File I/O)
ใช้ Files และ Paths จาก java.nio.file สำหรับการจัดการไฟล์
import java.nio.file.*;
import java.io.IOException;
Files.writeString(Paths.get("file.txt"), "สวัสดีไฟล์");
String content = Files.readString(Paths.get("file.txt"));
System.out.println(content);
11. การจัดการสตริง
สตริงใน Java รองรับเมธอดมากมาย เช่น length(), substring() และ contains().
String text = "สวัสดีชาวโลก";
System.out.println(text.length());
System.out.println(text.substring(0, 5));
System.out.println(text.contains("World"));
12. คลาสและอ็อบเจ็กต์
Java รองรับการเขียนโปรแกรมเชิงวัตถุด้วยคลาสและอินสแตนซ์
class Person {
String name;
Person(String name) {
this.name = name;
}
void greet() {
System.out.println("สวัสดี, ฉันชื่อ " + name);
}
}
Person p = new Person("Alice");
p.greet();