พื้นผิวของลูกบาศก์ 3x3x3 เป็นกราฟ


18

งานของคุณคือการสร้างกราฟที่มี 54 จุดยอดแต่ละอันสอดคล้องกับด้านของลูกบาศก์รูบิค มีขอบระหว่างจุดยอดสองจุดถ้าด้านที่เกี่ยวข้องแบ่งด้านกัน

กฎระเบียบ

  • คุณอาจเลือกที่จะแสดงผลรายการคำคุณศัพท์เมทริกซ์คำคุณศัพท์รายการขอบหรือรูปแบบที่เหมาะสมเพื่อแสดงกราฟในอัลกอริทึม (โดยทั่วไปแล้วกราฟที่มนุษย์สามารถอ่านได้มักจะไม่ใช่รูปแบบที่เหมาะสมในอัลกอริทึมในกรณีส่วนใหญ่)
  • คุณสามารถสร้างจุดสุดยอดทุกจุดติดกับตัวเองหรือไม่ติดกับตัวเองก็ได้
  • คุณอาจรวมทั้งสองทิศทางสำหรับแต่ละขอบ (นับหนึ่งหรือสองครั้งสำหรับการวนรอบตัวเอง) หรือเอาท์พุทหนึ่งครั้งสำหรับแต่ละขอบ แต่ไม่รวมกัน
  • คุณสามารถกำหนดหมายเลขจุดยอดใหม่อีกครั้งข้ามตัวเลขบางส่วนหรือใช้ป้ายกำกับที่ไม่ใช่ตัวเลขสำหรับจุดยอดในทางที่คุณต้องการ คุณควรโพสต์หมายเลขหากไม่ชัดเจนดังนั้นผู้อื่นสามารถตรวจสอบคำตอบของคุณได้ง่ายขึ้น
  • นี่คือรหัสกอล์ฟ รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ

ตัวอย่างผลลัพธ์

นี่คือการนับจำนวนจุดยอดที่ใช้ในตัวอย่าง:

          0  1  2
          3  4  5
          6  7  8
 9 10 11 18 19 20 27 28 29 36 37 38
12 13 14 21 22 23 30 31 32 39 40 41
15 16 17 24 25 26 33 34 35 42 43 44
         45 46 47
         48 49 50
         51 52 53

เอาท์พุทเป็นรายการ adjacency (หมายเลขจุดสุดยอดก่อนแต่ละรายการเป็นตัวเลือก):

0 [1 3 9 38]
1 [2 4 0 37]
2 [29 5 1 36]
3 [4 6 10 0]
4 [5 7 3 1]
5 [28 8 4 2]
6 [7 18 11 3]
7 [8 19 6 4]
8 [27 20 7 5]
9 [10 12 38 0]
10 [11 13 9 3]
11 [18 14 10 6]
12 [13 15 41 9]
13 [14 16 12 10]
14 [21 17 13 11]
15 [16 51 44 12]
16 [17 48 15 13]
17 [24 45 16 14]
18 [19 21 11 6]
19 [20 22 18 7]
20 [27 23 19 8]
21 [22 24 14 18]
22 [23 25 21 19]
23 [30 26 22 20]
24 [25 45 17 21]
25 [26 46 24 22]
26 [33 47 25 23]
27 [28 30 20 8]
28 [29 31 27 5]
29 [36 32 28 2]
30 [31 33 23 27]
31 [32 34 30 28]
32 [39 35 31 29]
33 [34 47 26 30]
34 [35 50 33 31]
35 [42 53 34 32]
36 [37 39 29 2]
37 [38 40 36 1]
38 [9 41 37 0]
39 [40 42 32 36]
40 [41 43 39 37]
41 [12 44 40 38]
42 [43 53 35 39]
43 [44 52 42 40]
44 [15 51 43 41]
45 [46 48 17 24]
46 [47 49 45 25]
47 [33 50 46 26]
48 [49 51 16 45]
49 [50 52 48 46]
50 [34 53 49 47]
51 [52 44 15 48]
52 [53 43 51 49]
53 [35 42 52 50]

คำตอบ:


8

APL (Dyalog Classic) , 34 30 ไบต์

-4 ขอบคุณ jimmy23013

4≥+/¨|∘.-⍨,(⍳3)∘.⌽7 ¯1∘.,○⍳3 3

ลองออนไลน์!

เอาท์พุตเมทริกซ์ adjacency กับแต่ละจุดสุดยอดที่อยู่ติดกับตัวเอง

⍳3 3 สร้างอาร์เรย์ของ (0 0)(0 1)(0 2)(1 0)(1 1)(1 2)(2 0)(2 1)(2 2)

คูณทั้งหมดด้วยπ

7 ¯1∘., เสริม 7 หรือ -1 ในรูปแบบที่เป็นไปได้ทั้งหมด

(⍳3)∘.⌽ หมุนอเนกประสงค์คอร์ดด้วย 0 1 2 ขั้นตอนในวิธีที่เป็นไปได้ทั้งหมด

+/¨|∘.-⍨, คำนวณระยะทางแมนฮัตตันระหว่างแต่ละคู่

4≥ จะต้องไม่เกิน 4 สำหรับด้านที่อยู่ใกล้เคียง


@ jimmy23013 ใช้πดีมาก :) ขอบคุณ!
ngn

เมทริกซ์ 54x54 ... น่าประทับใจ
ดอนสดใส

6

Ruby , 79 ไบต์

54.times{|i|p [(i%6<5?i+1:i+18-i/6%3*7)%54,(i+=i%18<12?6:[18-i%6*7,3].max)%54]}

ลองออนไลน์!

พิมพ์การแสดงกราฟทิศทางเดียวเป็นรายการของจุดยอดทางด้านขวาและด้านล่างของแต่ละจุดยอดดังที่แสดงในแผนที่ด้านล่าง

 0  1  2  3  4  5   
 6  7  8  9 10 11   
12 13 14 15 16 17   
         18 19 20 21 22 23
         24 25 26 27 28 29
         30 31 32 33 34 35
                  36 37 38 39 40 41
                  42 43 44 45 46 47 
                  48 49 50 51 52 53

4

Python 2.7, 145

def p(n):l=(3-n%2*6,n/6%3*2-2,n/18*2-2);k=n/2%3;return l[k:]+l[:k]
r=range(54)
x=[[sum((x-y)**2for x,y in zip(p(i),p(j)))<5for i in r]for j in r]

ลองออนไลน์!

กำหนดเมทริกซ์ adjacency xเป็นรายการของค่าบูลีน แง่มุมนับว่าอยู่ติดกับตัวเอง

p(n)คำนวณพิกัดของศูนย์กลางของ facet ที่ n ของลูกบาศก์ 3x3x3 ซึ่ง facets มี 2 หน่วยข้าม Adjacency จะถูกกำหนดโดยการทดสอบว่า 2 facets มีระยะสี่เหลี่ยมจัตุรัสต่ำกว่า 5 (facets ที่อยู่ติดกันมี square square มากที่สุด 4, facets ที่ไม่ติดกันมี face square อย่างน้อย 6)


3

ถ่าน 48 ไบต์

F⁷F⁷F⁷⊞υ⟦ικλ⟧≔Φυ⁼Φ﹪ι⁶¬﹪λ²⟦⁰⟧υIEυΦLυ⁼²ΣE§υλ↔⁻ν§ιξ

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด คำอธิบาย:

F⁷F⁷F⁷⊞υ⟦ικλ⟧

สร้างพิกัด 3 มิติทั้งหมดในช่วง[0..6]สำหรับแต่ละมิติ

≔Φυ⁼Φ﹪ι⁶¬﹪λ²⟦⁰⟧υ

เก็บเฉพาะพิกัดที่เป็นศูนย์กลางของ 2x2สี่เหลี่ยมที่หนึ่งของใบหน้าx=0, y=0, z=0, x=6, ,y=6z=6

IEυΦLυ⁼²ΣE§υλ↔⁻ν§ιξ

สำหรับแต่ละพิกัดให้พิมพ์ดัชนีของพิกัดเหล่านั้นที่มีระยะทางแท็กซี่เท่ากับ 2

จุดยอดมีหมายเลขดังนี้:

         33 34 35
         21 22 23
          9 10 11
36 24 12  0  1  2 13 25 37 47 46 45
38 26 14  3  4  5 15 27 39 50 49 48
40 28 16  6  7  8 17 29 41 53 52 51
         18 19 20
         30 31 32
         42 43 44

มีเอกสารอะไรเกี่ยวกับถ่านบนเว็บบ้างไหม?
ดอนสดใส

@donbright ติดตามลิงค์ GitHub ในชื่อคำตอบแล้วคลิก Wiki
Neil

2

ภาษา Wolfram 190 ไบต์

ต่อไปนี้จะคืนค่าขอบกราฟทั้งหมดในแง่ของพิกัดที่แท้จริง (สมมติว่าแต่ละ mini-cube คือ 2 หน่วยที่ขอบและลูกบาศก์ของ Rubik มีจุดยอดซ้ายล่างที่จุดกำเนิด)

t=Table;h[a_,b_,c_]:=t[{x,y,z},{a,1,5,2},{b,1,5,2},{c,0,6,6}];Partition[Sort[a=Cases[DeleteCases[Tuples[Flatten[{h[x,z,y],h[y,z,x],h[x,y,z]},3],{2}],{x_,x_}],x_/;ManhattanDistance@@x==2]],4]

(* output *)
{{{{0,1,1},{0,1,3}},{{0,1,1},{0,3,1}},{{0,1,1},{1,0,1}},{{0,1,1},{1,1,0}}},{{{0,1,3},{0,1,1}},{{0,1,3},{0,1,5}},{{0,1,3},{0,3,3}},{{0,1,3},{1,0,3}}},{{{0,1,5},{0,1,3}},{{0,1,5},{0,3,5}},{{0,1,5},{1,0,5}},{{0,1,5},{1,1,6}}},{{{0,3,1},{0,1,1}},{{0,3,1},{0,3,3}},{{0,3,1},{0,5,1}},{{0,3,1},{1,3,0}}},{{{0,3,3},{0,1,3}},{{0,3,3},{0,3,1}},{{0,3,3},{0,3,5}},{{0,3,3},{0,5,3}}},{{{0,3,5},{0,1,5}},{{0,3,5},{0,3,3}},{{0,3,5},{0,5,5}},{{0,3,5},{1,3,6}}},{{{0,5,1},{0,3,1}},{{0,5,1},{0,5,3}},{{0,5,1},{1,5,0}},{{0,5,1},{1,6,1}}},{{{0,5,3},{0,3,3}},{{0,5,3},{0,5,1}},{{0,5,3},{0,5,5}},{{0,5,3},{1,6,3}}},{{{0,5,5},{0,3,5}},{{0,5,5},{0,5,3}},{{0,5,5},{1,5,6}},{{0,5,5},{1,6,5}}},{{{1,0,1},{0,1,1}},{{1,0,1},{1,0,3}},{{1,0,1},{1,1,0}},{{1,0,1},{3,0,1}}},{{{1,0,3},{0,1,3}},{{1,0,3},{1,0,1}},{{1,0,3},{1,0,5}},{{1,0,3},{3,0,3}}},{{{1,0,5},{0,1,5}},{{1,0,5},{1,0,3}},{{1,0,5},{1,1,6}},{{1,0,5},{3,0,5}}},{{{1,1,0},{0,1,1}},{{1,1,0},{1,0,1}},{{1,1,0},{1,3,0}},{{1,1,0},{3,1,0}}},{{{1,1,6},{0,1,5}},{{1,1,6},{1,0,5}},{{1,1,6},{1,3,6}},{{1,1,6},{3,1,6}}},{{{1,3,0},{0,3,1}},{{1,3,0},{1,1,0}},{{1,3,0},{1,5,0}},{{1,3,0},{3,3,0}}},{{{1,3,6},{0,3,5}},{{1,3,6},{1,1,6}},{{1,3,6},{1,5,6}},{{1,3,6},{3,3,6}}},{{{1,5,0},{0,5,1}},{{1,5,0},{1,3,0}},{{1,5,0},{1,6,1}},{{1,5,0},{3,5,0}}},{{{1,5,6},{0,5,5}},{{1,5,6},{1,3,6}},{{1,5,6},{1,6,5}},{{1,5,6},{3,5,6}}},{{{1,6,1},{0,5,1}},{{1,6,1},{1,5,0}},{{1,6,1},{1,6,3}},{{1,6,1},{3,6,1}}},{{{1,6,3},{0,5,3}},{{1,6,3},{1,6,1}},{{1,6,3},{1,6,5}},{{1,6,3},{3,6,3}}},{{{1,6,5},{0,5,5}},{{1,6,5},{1,5,6}},{{1,6,5},{1,6,3}},{{1,6,5},{3,6,5}}},{{{3,0,1},{1,0,1}},{{3,0,1},{3,0,3}},{{3,0,1},{3,1,0}},{{3,0,1},{5,0,1}}},{{{3,0,3},{1,0,3}},{{3,0,3},{3,0,1}},{{3,0,3},{3,0,5}},{{3,0,3},{5,0,3}}},{{{3,0,5},{1,0,5}},{{3,0,5},{3,0,3}},{{3,0,5},{3,1,6}},{{3,0,5},{5,0,5}}},{{{3,1,0},{1,1,0}},{{3,1,0},{3,0,1}},{{3,1,0},{3,3,0}},{{3,1,0},{5,1,0}}},{{{3,1,6},{1,1,6}},{{3,1,6},{3,0,5}},{{3,1,6},{3,3,6}},{{3,1,6},{5,1,6}}},{{{3,3,0},{1,3,0}},{{3,3,0},{3,1,0}},{{3,3,0},{3,5,0}},{{3,3,0},{5,3,0}}},{{{3,3,6},{1,3,6}},{{3,3,6},{3,1,6}},{{3,3,6},{3,5,6}},{{3,3,6},{5,3,6}}},{{{3,5,0},{1,5,0}},{{3,5,0},{3,3,0}},{{3,5,0},{3,6,1}},{{3,5,0},{5,5,0}}},{{{3,5,6},{1,5,6}},{{3,5,6},{3,3,6}},{{3,5,6},{3,6,5}},{{3,5,6},{5,5,6}}},{{{3,6,1},{1,6,1}},{{3,6,1},{3,5,0}},{{3,6,1},{3,6,3}},{{3,6,1},{5,6,1}}},{{{3,6,3},{1,6,3}},{{3,6,3},{3,6,1}},{{3,6,3},{3,6,5}},{{3,6,3},{5,6,3}}},{{{3,6,5},{1,6,5}},{{3,6,5},{3,5,6}},{{3,6,5},{3,6,3}},{{3,6,5},{5,6,5}}},{{{5,0,1},{3,0,1}},{{5,0,1},{5,0,3}},{{5,0,1},{5,1,0}},{{5,0,1},{6,1,1}}},{{{5,0,3},{3,0,3}},{{5,0,3},{5,0,1}},{{5,0,3},{5,0,5}},{{5,0,3},{6,1,3}}},{{{5,0,5},{3,0,5}},{{5,0,5},{5,0,3}},{{5,0,5},{5,1,6}},{{5,0,5},{6,1,5}}},{{{5,1,0},{3,1,0}},{{5,1,0},{5,0,1}},{{5,1,0},{5,3,0}},{{5,1,0},{6,1,1}}},{{{5,1,6},{3,1,6}},{{5,1,6},{5,0,5}},{{5,1,6},{5,3,6}},{{5,1,6},{6,1,5}}},{{{5,3,0},{3,3,0}},{{5,3,0},{5,1,0}},{{5,3,0},{5,5,0}},{{5,3,0},{6,3,1}}},{{{5,3,6},{3,3,6}},{{5,3,6},{5,1,6}},{{5,3,6},{5,5,6}},{{5,3,6},{6,3,5}}},{{{5,5,0},{3,5,0}},{{5,5,0},{5,3,0}},{{5,5,0},{5,6,1}},{{5,5,0},{6,5,1}}},{{{5,5,6},{3,5,6}},{{5,5,6},{5,3,6}},{{5,5,6},{5,6,5}},{{5,5,6},{6,5,5}}},{{{5,6,1},{3,6,1}},{{5,6,1},{5,5,0}},{{5,6,1},{5,6,3}},{{5,6,1},{6,5,1}}},{{{5,6,3},{3,6,3}},{{5,6,3},{5,6,1}},{{5,6,3},{5,6,5}},{{5,6,3},{6,5,3}}},{{{5,6,5},{3,6,5}},{{5,6,5},{5,5,6}},{{5,6,5},{5,6,3}},{{5,6,5},{6,5,5}}},{{{6,1,1},{5,0,1}},{{6,1,1},{5,1,0}},{{6,1,1},{6,1,3}},{{6,1,1},{6,3,1}}},{{{6,1,3},{5,0,3}},{{6,1,3},{6,1,1}},{{6,1,3},{6,1,5}},{{6,1,3},{6,3,3}}},{{{6,1,5},{5,0,5}},{{6,1,5},{5,1,6}},{{6,1,5},{6,1,3}},{{6,1,5},{6,3,5}}},{{{6,3,1},{5,3,0}},{{6,3,1},{6,1,1}},{{6,3,1},{6,3,3}},{{6,3,1},{6,5,1}}},{{{6,3,3},{6,1,3}},{{6,3,3},{6,3,1}},{{6,3,3},{6,3,5}},{{6,3,3},{6,5,3}}},{{{6,3,5},{5,3,6}},{{6,3,5},{6,1,5}},{{6,3,5},{6,3,3}},{{6,3,5},{6,5,5}}},{{{6,5,1},{5,5,0}},{{6,5,1},{5,6,1}},{{6,5,1},{6,3,1}},{{6,5,1},{6,5,3}}},{{{6,5,3},{5,6,3}},{{6,5,3},{6,3,3}},{{6,5,3},{6,5,1}},{{6,5,3},{6,5,5}}},{{{6,5,5},{5,5,6}},{{6,5,5},{5,6,5}},{{6,5,5},{6,3,5}},{{6,5,5},{6,5,3}}}}

การทำงานของการสร้างจุดในแต่ละด้านภายนอกทำโดยฟังก์ชั่น h . มันจะต้องถูกเรียก 3 ครั้งเพื่อสร้างคะแนนที่ x = 0, x = 6; y = 0, y = 6; และ z = 0, z = 6

แต่ละจุด facet ที่เป็นระยะทางแมนฮัตตัน 2 หน่วยจากที่อื่นจะเชื่อมต่อกับจุดที่เกี่ยวข้อง

เราสามารถแสดงขอบกราฟที่มองเห็นได้ดังต่อไปนี้ aคือรายการของขอบกราฟที่แสดงด้านล่างเป็นลูกศร

Graphics3D[{Arrowheads[.02],Arrow/@a},Boxed->False,Axes-> True]

pic1

ต่อไปนี้แสดงให้เห็นถึงลูกบาศก์ของรูบิคจุดบนด้านนอกและ 8 กราฟขอบ pic2

จุดสีแดงตั้งอยู่บน facets ที่ y = 0 และ y = 6; จุดสีฟ้าและสีเทาอยู่บน facets ที่ x = 6 และ x = 0 ตามลำดับ จุดสีดำอยู่บน facets ที่ z = 6 และ z = 0


รูปภาพสวย ๆ , หัวลูกศรเจ๋งจริงๆ
อย่าสดใส

1

สนิม - 278 ไบต์

fn main(){let mut v=vec![];for x in vec![-2,0,2]{for y in vec![-2,0,2]{for z in vec![-2,2]{v.push([-1,z,x,y]);v.push([0,x,y,z]);v.push([1,x,z,y]);}}}for r in 0..54{print!("\n{} ",r);for s in 0..54{if (0..4).map(|n|v[r][n]-v[s][n]).map(|d|d*d).sum::<i32>()<5{print!("{} ",s)}}}}

ลองใช้ play.rust-lang.org

นี่คือใหญ่ แต่รหัสที่เล็กที่สุดสำหรับภาษาที่รวบรวม (จนถึง) มันสร้างรายการคำคุณศัพท์ มันคล้ายกับคำตอบหลามของ cardboard_box แต่ฉันต้องการดูว่า Quaternions สามารถใช้งานได้หรือไม่

ขั้นตอนที่ 1: สร้าง 54 Quaternions แต่ละคนเป็นตัวแทนด้านเดียว

ขั้นตอนที่ 2: สำหรับแต่ละ Quaternion ให้ระบุรายการ Quaternions อื่น ๆ ทั้งหมดด้วย Quadrance (ระยะทางกำลังสองหรือที่รู้จัก, กำลังสองมาตรฐานของความแตกต่าง) <= 4

Quaternions ถูกสร้างขึ้นเช่นนั้น: เวกเตอร์จินตภาพ ijk เป็นจุดบนเปลือกของตารางจาก -2, -2, -2 ถึง 2,2,2, ขั้นตอนที่ 2 ส่วนที่แท้จริงของ w คือ -1, 0 หรือ 1 เพื่อให้ facets ที่ด้านตรงข้ามของ cube มีส่วนจริงเหมือนกัน แต่ด้านที่อยู่ติดกันมีส่วนจริงที่แตกต่างกัน ส่วนที่แท้จริงอนุญาตให้แยกความแตกต่าง 'ด้าน' ของลูกบาศก์ผ่านการคำนวณ

ลำดับเลข quaternion (มุมมองหลอกแบบสามมิติของลูกบาศก์):

   ->i  ^j  \k

                  -2,+2,+2   +0,+2,+2  +2,+2,+2
                  -2,+0,+2   +0,+0,+2  +2,+0,+2
                  -2,-2,+2   +0,-2,+2  +2,-2,+2
                       w=0

   -2,+2,+2       -2 +2 +2   +0 +2 +2   +2 +2 +2     +2,+2,+2
   -2,+0,+2                                          +2,+0,+2
   -2,-2,+2       -2 -2 +2   +0 -2 +2   +2 -2 +2     +2,-2,+2

     -2,+2,+0       -2 +2 +0   +0 +2 +0   +2 +2 +0     +2,+2,+0
     -2,+0,+0                                          +2,+0,+0
     -2,-2,+0       -2 -2 +0   +0 -2 +0   +2 -2 +0     +2,-2,+0

       -2,+2,-2       -2 +2 -2   +0 +2 -2   +2 +2 -2     +2,+2,-2
       -2,+0,-2             w=1                          +2,+0,-2
       -2,-2,-2       -2 -2 -2   +0 -2 -2   +2 -2 -2     +2,-2,-2
           w=-1             w=1                              w=-1

                       -2,+2,-2   +0,+2,-2  +2,+2,-2
                       -2,+0,-2   +0,+0,-2  +2,+0,-2
                       -2,-2,-2   +0,-2,-2  +2,-2,-2
                            w=0

การจัดทำดัชนีลำดับเลข (ลูกบาศก์ที่กางออก):

                    16 34 52
                    10 28 46
                     4 22 40
         48 30 12   14 32 50  15 33 51
         42 24  6    8 26 44   9 27 45
         36 18  0    2 20 38   3 21 39
                     1 19 37
                     7 25 43
                    13 31 49
                     5 23 41
                    11 29 47
                    17 35 53



1

JavaScript (ES6, เบราว์เซอร์), 153 ไบต์

for(F=n=>(A=[n%9/3|0,n%3]).splice(n/18,0,(n/9&1)*3-.5)&&A,i=0;i<54;i++)for([a,b,c]=F(i),j=0;j<54;Math.hypot(a-d,b-e,c-f)>1||alert([i,j]),j++)[d,e,f]=F(j)

ลองออนไลน์!

นี่คือการแก้ไขเพื่อลด 5 ไบต์โดยทำจุดเดียวกันที่อยู่ติดกันคือ ||A-B||1.

JavaScript (ES6, เบราว์เซอร์), 158 ไบต์

for(F=n=>(A=[n%9/3|0,n%3]).splice(n/18,0,(n/9&1)*3-.5)&&A,i=0;i<54;i++)for([a,b,c]=F(i),j=0;j<54;Math.hypot(a-d,b-e,c-f)>1||i-j&&alert([i,j]),j++)[d,e,f]=F(j)

ลองออนไลน์! (จำลองalertด้วยconsole.log)

แมปจุดศูนย์กลางของ 54 แง่มุมทั้งหมดไปยังพื้นที่ 3 มิติและคำนวณว่า 0<||A-B||1สำหรับคะแนนทุกคู่ [a, b]ขาออกขอบกำกับทั้งหมดเป็นคู่ของตัวเลข แผนที่จุดสุดยอดคือ

47 50 53
46 49 52
45 48 51
20 23 26 11 14 17 35 32 29  8  5  2 
19 22 25 10 13 16 34 31 28  7  4  1 
18 21 24  9 12 15 33 30 27  6  3  0 
36 39 42
37 40 43
38 41 44

ฉันไม่รู้ด้วยซ้ำว่ามี Math.hypot
ดอนจ้า
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.