วิทยาศาสตร์คอมพิวเตอร์

ถาม - ตอบสำหรับนักเรียนนักวิจัยและผู้ปฏิบัติงานด้านวิทยาการคอมพิวเตอร์

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

5
ความแตกต่างระหว่างเครื่องจักรทัวริงกับเครื่องจักรสถานะ จำกัด ?
ฉันกำลังนำเสนอเกี่ยวกับเครื่องจักรทัวริงและฉันต้องการให้พื้นหลังของ FSM ก่อนที่จะแนะนำเครื่องจักรทัวริง ปัญหาคือฉันไม่รู้จริง ๆ ว่าอะไรแตกต่างกันมาก นี่คือสิ่งที่ฉันรู้ว่ามันแตกต่างกัน: FSM มีสถานะตามลำดับขึ้นอยู่กับเงื่อนไขที่ตรงกันในขณะที่เครื่องทัวริงทำงานบน "เทป" ที่ไม่มีที่สิ้นสุดพร้อมด้วยหัวที่อ่านและเขียน มีที่ว่างสำหรับความผิดพลาดใน FSM มากขึ้นเนื่องจากเราสามารถตกอยู่ในสถานะไม่สิ้นสุดได้อย่างง่ายดายในขณะที่มันไม่มากนักสำหรับเครื่องจักรทัวริง แต่นอกเหนือจากนั้นฉันไม่รู้ความแตกต่างที่มากขึ้นซึ่งทำให้ทัวริงเครื่องจักรดีกว่าของ FSM คุณช่วยฉันได้ไหม?

3
ปัญหาที่ไม่สมบูรณ์ของ NP ไม่“ ชัดเจน” ใน NP
มันเกิดขึ้นกับหลาย ๆ คนที่ในบทพิสูจน์ความสมบูรณ์แบบทั้งหมดที่NPNP\textbf{NP}ฉันได้อ่าน (ที่ฉันจำได้) มันเป็นเรื่องเล็กน้อยที่จะแสดงให้เห็นว่าปัญหาอยู่ในNPNP\textbf{NP}และแสดงให้เห็นว่ามันเป็นNPNP\textbf{NP} -hard คือ ... ส่วนที่ยาก . NPNP\textbf{NP}สมบูรณ์ของปัญหาเหล่านี้คืออะไรซึ่งตัวตรวจสอบพหุนามเวลาไม่สูงมาก?

6
การบีบอัดข้อมูลไบนารีอย่างง่าย
ฉันมีไฟล์ที่มีเลขฐานสองเรียงจากถึง2 n - 1 :0002n−12n−12^n - 1 0000000000 0000000001 0000000010 0000000011 0000000100 ... 1111111111 7zไม่บีบอัดไฟล์นี้อย่างมีประสิทธิภาพมาก (สำหรับ n = 20, 22 MB ถูกบีบอัดเป็น 300 kB) มีอัลกอริทึมที่สามารถรับรู้โครงสร้างข้อมูลที่ง่ายมากและบีบอัดไฟล์เป็นหลายไบต์หรือไม่? นอกจากนี้ฉันต้องการทราบว่าสาขาใดของ CS หรือทฤษฎีสารสนเทศศึกษาอัลกอริทึมอัจฉริยะเช่นนั้น "AI" กว้างเกินไปโปรดแนะนำคำหลักที่เป็นรูปธรรมมากขึ้น แนวคิดเรื่องความสมมาตรควรมีบทบาทพื้นฐานในการบีบอัดข้อมูล แต่เคียวรีค้นหา "สมมาตรในการบีบอัดข้อมูล" และ "ทฤษฎีกลุ่มในการบีบอัดข้อมูล" กลับมาอย่างน่าประหลาดใจแทบไม่มีอะไรเกี่ยวข้องเลย

12
ทำไมกำลังพลเกินกำลังไม่ดี?
ฉันได้ศึกษาล็อตนี้แล้วพวกเขาบอกว่าการกระทำที่เกินจริงในการเรียนรู้ด้วยเครื่องจักรนั้นไม่ดี แต่เซลล์ประสาทของเราแข็งแกร่งมากและค้นหาการกระทำ / ความรู้สึกที่ดีที่สุดที่เราไปหรือหลีกเลี่ยง / ดีโดยตัวกระตุ้นที่ไม่ดีหรือดีหมายถึงการกระทำจะมีระดับและจบลงด้วยการกระทำที่ดีที่สุด (ขวา) ความมั่นใจที่แข็งแกร่งเป็นพิเศษ มันล้มเหลวอย่างไร มันใช้ทริกเกอร์ที่เป็นบวกและลบเพื่อยกเลิกการเพิ่มการกระทำที่พูดจาก 44pos ถึง 22neg

2
แสดงวิธีการทำ FFT ด้วยมือ
สมมติว่าคุณมีสองพหุนาม:และ23+x3+x3 + x2x2+22x2+22x^2 + 2 ฉันพยายามที่จะเข้าใจว่า FFT ช่วยให้เราคูณชื่อพหุนามทั้งสองนี้อย่างไร อย่างไรก็ตามฉันไม่พบตัวอย่างผลงานใด ๆ บางคนสามารถแสดงให้ฉันเห็นได้ว่าอัลกอริทึม FFT จะทวีคูณชื่อพหุนามทั้งสองนี้อย่างไร (หมายเหตุ: ไม่มีอะไรพิเศษเกี่ยวกับพหุนามเหล่านี้ แต่ฉันต้องการให้มันง่ายเพื่อให้ง่ายต่อการติดตาม) ฉันได้ดูอัลกอริธึมใน pseudocode แต่ดูเหมือนว่าพวกเขาทั้งหมดจะมีปัญหา (อย่าระบุว่าอินพุตควรเป็นอะไร, ตัวแปรที่ไม่ได้กำหนด) และน่าประหลาดใจที่ฉันไม่สามารถหาได้ว่ามีใครบ้างที่เดินผ่าน (ด้วยมือ) ตัวอย่างการคูณพหุนามด้วย FFT

5
ความสำคัญในทางปฏิบัติของเครื่องจักรทัวริง
ฉันเป็นวิศวกรไฟฟ้าและมีหลักสูตร CS เพียงหนึ่งหลักสูตรในวิทยาลัยเมื่อ 26 ปีที่แล้ว อย่างไรก็ตามฉันยังเป็นผู้ใช้ Mathematica ที่อุทิศตน ฉันมีความรู้สึกว่าทัวริงแมชชีนมีความสำคัญมากในด้านวิทยาการคอมพิวเตอร์ มีความสำคัญเฉพาะในทฤษฎีวิทยาศาสตร์คอมพิวเตอร์หรือไม่ หากมีความหมายในทางปฏิบัติ / การใช้งานสิ่งที่มีอยู่บ้าง?

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

4
ความซับซ้อนของเวลาในการหาเส้นผ่านศูนย์กลางของกราฟ
ความซับซ้อนของเวลาในการหาเส้นผ่านศูนย์กลางของกราฟ คืออะไรG=(V,E)G=(V,E)G=(V,E) O(|V|2)O(|V|2){O}(|V|^2) O(|V|2+|V|⋅|E|)O(|V|2+|V|⋅|E|){O}(|V|^2+|V| \cdot |E|) O(|V|2⋅|E|)O(|V|2⋅|E|){O}(|V|^2\cdot |E|) O(|V|⋅|E|2)O(|V|⋅|E|2){O}(|V|\cdot |E|^2) เส้นผ่านศูนย์กลางของกราฟGGGคือระยะทางที่สั้นที่สุดระหว่างชุดของจุดยอดทั้งหมดในกราฟ ฉันไม่รู้ว่าจะทำอย่างไรเกี่ยวกับเรื่องนี้ฉันต้องการการวิเคราะห์ที่สมบูรณ์เกี่ยวกับวิธีการแก้ปัญหาเช่นนี้

9
ภาษาการเขียนโปรแกรมกลายเป็นภาษาธรรมชาติมากกว่าหรือเปล่า?
คำถามนี้ถูกย้ายจากการแลกเปลี่ยนกองวิศวกรรมซอฟต์แวร์เพราะสามารถตอบได้ใน Computer Science Stack Exchange อพยพ 6 ปีที่แล้ว เราสามารถศึกษาภาษาการเขียนโปรแกรมในบริบทของภาษาศาสตร์ได้หรือไม่? ภาษาการเขียนโปรแกรมมีวิวัฒนาการตามธรรมชาติในรูปแบบที่คล้ายคลึงกับภาษาธรรมชาติ แม้ว่าความเป็นเหตุเป็นผลเต็มรูปแบบและความสอดคล้องทางคณิตศาสตร์เป็นสิ่งจำเป็นสำหรับภาษาโปรแกรม แต่ก็ยังมีความต้องการ (โดยเฉพาะภาษาสมัยใหม่) เพื่อให้สามารถอ่านได้และสะดวกสบายสำหรับมนุษย์ ภาษาการเขียนโปรแกรมพัฒนาขึ้นเพื่อให้เป็นภาษาศาสตร์มากขึ้นและเป็นธรรมชาติยิ่งขึ้นหรือไม่? ตัวอย่างเช่นรหัสเครื่อง, การ์ดเจาะรูและภาษาแอสเซมบลีได้ให้วิธีการในภาษาที่อ่านได้มากขึ้นเช่น Ruby และ Python เป็นต้น เมื่อฉันพูดภาษาคอมพิวเตอร์กลายเป็นธรรมชาติมากขึ้นฉันไม่ได้หมายความว่าพวกเขามี 'คำที่เรามีในภาษาอังกฤษ' ฉันหมายถึงพวกเขาดูเหมือนจะเป็นภาษาธรรมชาติมากกว่าในแง่ของความซับซ้อนของไวยากรณ์และความสามารถในการแสดงความหมาย (ตัวอย่างเช่นความสามารถในการอธิบายการสอบถามจากฐานข้อมูลอย่างละเอียดทั้งในเชิงเหตุผลและที่มนุษย์เข้าใจได้) คุณคิดอย่างไร? ภาษาการเขียนโปรแกรมมีลักษณะคล้ายกับภาษาธรรมชาติมากขึ้นและสามารถนำไปใช้กับกฎหมายภาษาศาสตร์ได้หรือไม่? หรือบางทีภาษาก็อาศัยอยู่ในสเปกตรัมซึ่งในอีกด้านหนึ่งคุณมีภาษาที่มีเหตุผลสูงมากและอีกด้านหนึ่งก็สร้างสรรค์มากขึ้น บางทีการเขียนโปรแกรมและภาษาธรรมชาตินั้นเหมือนกันและทั้งคู่ก็อยู่บนสเปกตรัมภาษานี้ (ความแตกต่างเพียงอย่างเดียวอาจเป็น 'สิ่ง' ที่พวกเขาพยายามให้ความหมายของมัน) มีการเชื่อมต่อระหว่างการแยก (Babel Tower effect) ของภาษามนุษย์และภาษาคอมพิวเตอร์หรือไม่? พวกเขามีความหลากหลายมากขึ้นด้วยเหตุผลเดียวกัน (เช่นการแก้ปัญหาที่แตกต่างกันภายในระบบคอมพิวเตอร์ / วัฒนธรรม - ระบบ ฯลฯ )?

4
รหัสมอร์สเป็นไบนารีประกอบไปด้วยหรือ quinary?
ฉันกำลังอ่านหนังสือ: " รหัส: ภาษาที่ซ่อนอยู่ของฮาร์ดแวร์คอมพิวเตอร์และซอฟต์แวร์ " และในบทที่ 2 ผู้เขียนบอกว่า: รหัสมอร์สกล่าวกันว่าเป็นรหัสไบนารี่ (หมายถึงตัวอักษรสองต่อสอง) เพราะส่วนประกอบของรหัสประกอบด้วยเพียงสองสิ่ง - จุดและเส้นประ Wikipediaกล่าวว่า: พูดอย่างเคร่งครัดไม่ใช่ไบนารีเนื่องจากมีห้าองค์ประกอบพื้นฐาน (ดู quinary) อย่างไรก็ตามนี่ไม่ได้หมายความว่ารหัสมอร์สไม่สามารถแสดงเป็นรหัสไบนารี่ได้ ในแง่นามธรรมนี่คือฟังก์ชั่นที่ตัวดำเนินการโทรเลขดำเนินการเมื่อส่งข้อความ (ดูที่ quinary) แต่แล้วอีกครั้งหน้า Wikipedia อีกอันก็มีรหัสมอร์สใน 'รายชื่อรหัสไบนารี' ฉันสับสนมากเพราะฉันคิดว่ารหัสมอร์สเป็นจริงประกอบไปด้วย คุณมี 'ความเป็นไปได้ 3 ประเภทที่แตกต่างกัน: ความเงียบเสียงบี๊ปสั้นหรือเสียงบี๊บยาว เป็นไปไม่ได้ที่จะเป็นตัวแทนของรหัสมอร์สใน 'stirct binary' ใช่ไหม? โดย 'binary ที่เข้มงวด' ฉันหมายถึงคิดถึงกระแสของไบนารี: 1010111101010 .. ฉันควรจะเป็นตัวแทนของความเงียบเสียงบี๊ปสั้นและ / หรือเสียงบี๊บยาวอย่างไร วิธีเดียวที่ฉันคิดได้ก็คือ 'ขนาดของคำ' ที่คอมพิวเตอร์ใช้ ถ้าฉัน (และ CPU …

1
regex golf NP-Complete หรือไม่
เท่าที่เห็นในแถบ XKCD ที่ผ่านมานี้และโพสต์บล็อกล่าสุดนี้จาก Peter Norvig (และ Slashdot เนื้อเรื่องหลัง), "regex golf" (ซึ่งอาจเรียกได้ว่าเป็นปัญหาการแยกนิพจน์ทั่วไป) เป็นปริศนาของการกำหนดนิพจน์ปกติที่สั้นที่สุดที่เป็นไปได้ที่ยอมรับทุกคำในเซต A และไม่มีคำใน โพสต์ของ set B. Norvig มีอัลกอริธึมสำหรับการสร้างผู้สมัครที่มีเหตุผลสั้น ๆ และเขาสังเกตว่าวิธีการของเขาเกี่ยวข้องกับการแก้ปัญหาชุด NP-complete แต่เขาก็ระมัดระวังที่จะชี้ให้เห็นว่าวิธีการของเขานั้น และแน่นอนว่าเขาไม่จำเป็นต้องเป็นอัลกอริธึมเท่านั้นดังนั้นวิธีแก้ปัญหาของเขาจึงไม่รับประกันว่าจะดีที่สุดและเป็นไปได้ว่าอัลกอริธึมแบบพหุนามเวลาอื่น ๆ สามารถหาวิธีแก้ปัญหาที่เทียบเท่าหรือดีกว่าได้ เพื่อประโยชน์ของ concreteness และเพื่อหลีกเลี่ยงการแก้ไขคำถามการปรับให้เหมาะสมฉันคิดว่าสูตรที่เป็นธรรมชาติที่สุดของการแยกนิพจน์ปกติคือ: ให้สอง (จำกัด ) ชุดและBของสายอักขระบางตัวΣ , มีการแสดงออกปกติของความยาว≤ kที่ยอมรับทุกสายในAและปฏิเสธทุกสายในB ?AAABBBΣΣ\Sigma≤ k≤k\leq kAAABBB มีความรู้เกี่ยวกับความซับซ้อนของปัญหาการแยกนี้หรือไม่? (โปรดทราบว่าเนื่องจากฉันได้ระบุและBเป็นชุด จำกัด ของสตริงความคิดตามธรรมชาติของขนาดสำหรับปัญหาคือความยาวทั้งหมดของสตริงทั้งหมดในAและBซึ่งจะเพิ่มการสนับสนุนจากk ) ดูเหมือนว่าเป็นไปได้สูงที่ฉันจะใช้ NP-Complete (และในความเป็นจริงฉันคาดว่าการลดลงของปัญหาการปกปิดบางส่วน) แต่การค้นหาบางอย่างไม่ได้เปิดใช้งานอะไรที่มีประโยชน์เป็นพิเศษAAABBBAAABBBkkk

7
ทำไมเราต้องใช้ภาษาแอสเซมบลี
เราส่วนใหญ่เขียนโปรแกรมด้วยภาษาระดับสูง ดังนั้นในขณะที่เรียนฉันเจอภาษาแอสเซมบลี ดังนั้นแอสเซมเบลอร์จะแปลงภาษาแอสเซมบลีเป็นภาษาเครื่องและคอมไพเลอร์ก็ทำเช่นเดียวกันกับภาษาระดับสูง ฉันพบว่าภาษาแอสเซมบลีมีคำแนะนำเช่น move r1 r3, ย้าย 5 เป็นต้นและมันค่อนข้างยากที่จะศึกษา เหตุใดภาษาแอสเซมบลีจึงถูกสร้างขึ้นหรือเป็นภาษาที่มาก่อนภาษาระดับสูง ทำไมฉันถึงเรียนเกี่ยวกับแอสเซมเบลอร์ในชั้นเรียนวิศวกรรมคอมพิวเตอร์ของฉัน

7
เหตุใดกระบวนทัศน์ของผู้ทำลายล้างวัตถุในภาษาที่รวบรวมขยะจึงหายไปอย่างแพร่หลาย?
กำลังมองหาข้อมูลเชิงลึกเกี่ยวกับการตัดสินใจเกี่ยวกับการออกแบบภาษาที่รวบรวมขยะ บางทีผู้เชี่ยวชาญด้านภาษาสามารถสอนฉัน ฉันมาจากพื้นหลัง C ++ ดังนั้นพื้นที่นี้ทำให้ฉันงุนงง ดูเหมือนว่าภาษาที่รวบรวมขยะสมัยใหม่เกือบทั้งหมดที่มีการสนับสนุนวัตถุ OOPy เช่น Ruby, Javascript / ES6 / ES7, Actionscript, Lua และอื่น ๆ จะไม่ใช้ destructor / finalize paradigm Python ดูเหมือนจะเป็นคนเดียวที่มีclass __del__()วิธีการ ทำไมนี้ มีข้อ จำกัด ด้านการทำงาน / ทางทฤษฎีในภาษาที่มีการรวบรวมขยะอัตโนมัติซึ่งป้องกันการใช้งานที่มีประสิทธิภาพของวิธีการ destructor / จบบนวัตถุ? ฉันพบว่าภาษาเหล่านี้ไม่ได้พิจารณาถึงความทรงจำเป็นอย่างยิ่งเพราะเป็นเพียงการจัดการทรัพยากร เกี่ยวกับซ็อกเก็ตตัวจัดการไฟล์สถานะแอปพลิเคชัน หากปราศจากความสามารถในการใช้ตรรกะที่กำหนดเองเพื่อล้างทรัพยากรที่ไม่ใช่หน่วยความจำและสถานะในการสรุปวัตถุฉันต้องทำให้แอปพลิเคชั่นของฉันมีmyObject.destroy()สไตล์การโทรที่กำหนดเองวางตรรกะการล้างข้อมูลนอก "คลาส" ของฉัน การประยุกต์ใช้กับการรั่วไหลของทรัพยากรเนื่องจากข้อผิดพลาดของมนุษย์มากกว่าจะถูกจัดการโดย gc โดยอัตโนมัติ การตัดสินใจออกแบบภาษาที่นำไปสู่ภาษาเหล่านี้ไม่มีวิธีใดในการดำเนินการตรรกะที่กำหนดเองในการกำจัดวัตถุคืออะไร? ฉันต้องจินตนาการว่ามีเหตุผลที่ดี ฉันต้องการเข้าใจการตัดสินใจทางเทคนิคและทางทฤษฎีที่ทำให้ภาษาเหล่านี้ไม่สนับสนุนการทำลายวัตถุ / การสรุป ปรับปรุง: …

7
ภาษาทัวริงทั้งหมดล้วนใช้แทนกันได้
หมายเหตุในขณะที่ฉันรู้วิธีการเขียนโปรแกรมฉันค่อนข้างเป็นผู้เริ่มต้นในทฤษฎี CS ตามคำตอบนี้ ทัวริงสมบูรณ์เป็นแนวคิดนามธรรมของการคำนวณ หากภาษาทัวริงสมบูรณ์แล้วก็สามารถทำการคำนวณใด ๆ ที่ภาษาทัวริงอื่น ๆ สามารถทำได้ และโปรแกรมที่เขียนด้วยภาษาทัวริงที่สมบูรณ์สามารถเขียนใหม่ในภาษาอื่นได้ ตกลง. มันสมเหตุสมผลแล้ว ฉันสามารถแปล (คอมไพล์) C เป็นแอสเซมบลี (และฉันทำมันทุกวัน!) และสามารถแปลแอสเซมบลีเป็น C (คุณสามารถเขียนเครื่องเสมือนใน C) และเช่นเดียวกันกับภาษาอื่น ๆ - คุณสามารถรวบรวมภาษาใด ๆ ในแอสเซมบลีแล้วเรียกใช้ใน VM ที่เขียนในภาษาอื่น แต่สามารถใด ๆโปรแกรมที่เขียนในภาษาทัวริงสมบูรณ์นำมาเขียนใหม่อีก? เกิดอะไรขึ้นถ้าสมัชชาของฉันมี opcode LIGHTBUTTON? ฉันไม่สามารถเลียนแบบภาษานั้นในระบบ (ภาษา) โดยไม่ใช้หลอดไฟ ตกลง. คุณจะบอกว่าเนื่องจากเรากำลังเผชิญกับทฤษฎีคอมพิวเตอร์เราไม่ได้พูดถึงข้อ จำกัด ของอุปกรณ์ทางกายภาพ แต่ถ้าเป็นอุปกรณ์ที่ไม่มีการคูณล่ะ แผนก? เพื่อความรู้ที่ดีที่สุดของฉัน (แม้ว่านี่จะเป็นคำถามสำหรับคณิตศาสตร์.) เราไม่สามารถเลียนแบบการคูณ (และไม่หารแน่นอน) ด้วยการบวกและการลบ [1] ดังนั้น …

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