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

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

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

3
การอ้างอิงการนับ GC กับการติดตาม GC เป็นคุณสมบัติภาษาหรือคุณสมบัติการใช้งานหรือไม่
บางครั้งเราได้ยินคำว่า "สวิฟท์ไม่ได้ทำคลาสสิก (ติดตาม) GC จะใช้ ARC." แต่ฉันไม่แน่ใจว่ามีอะไรใน Swant semantics ที่ต้องใช้การนับการอ้างอิง ดูเหมือนว่าเราสามารถสร้างคอมไพเลอร์ Swift และรันไทม์ของตัวเองเพื่อใช้การติดตาม GC ดังนั้น "อ้างอิงนับ" เกี่ยวกับ Swift คืออะไร? การใช้งานแอปเปิ้ลหรือภาษาตัวเองหรือไม่ มีบางส่วนของภาษาหรือไลบรารีที่สนับสนุน ARC อย่างยิ่งซึ่งเราสามารถใช้ป้ายกำกับนั้นสำหรับภาษานั้น ๆ ได้หรือไม่?

1
ค้นหาการวนซ้ำที่ยาวที่สุด
กำหนดสตริงผมอยากจะหาที่ยาวที่สุดในการทำซ้ำ (อย่างน้อยสองครั้ง) subsequence นั่นคือผมอยากจะพบสตริงซึ่งเป็น subsequence (ที่ไม่จำเป็นต้องเป็นที่ต่อเนื่องกัน) ของเช่นว่าw' นั่นคือคือสตริงที่แบ่งครึ่งปรากฏเป็นสองเท่าในแถว โปรดทราบว่าคือองค์ประกอบของแต่ไม่จำเป็นต้องเป็นสตริงย่อยssswwwsssw=w′⋅w′w=w′⋅w′w=w' \cdot w' wwwwwwsss ตัวอย่าง: สำหรับ 'ababccabdc' มันจะเป็น 'abcabc' เพราะ 'abc' = 'abc' และ 'abc' จะปรากฏขึ้น (อย่างน้อย) สองครั้งใน 'ababccabdc' สำหรับ 'addbacddabcd' ตัวเลือกหนึ่งคือ 'dddd' เพราะ 'dd' ปรากฏขึ้นสองครั้ง (ฉันไม่สามารถใช้ตัวอักษรเดียวกันหลาย ๆ ครั้งได้ แต่ที่นี่ฉันมี 4 'd ดังนั้นมันก็โอเค) แต่มันก็ดีกว่า 4 ความยาว 8: 'abcdabcd' เนื่องจาก 'abcd' เป็นซับสตริงของ 'addbacddabcd' …

1
ทำนายลำดับแบบสุ่มหลอก
ข้อจำกัดความรับผิดชอบ: ฉันเป็นนักชีววิทยาดังนั้นขออภัยสำหรับคำถามพื้นฐาน (อาจ) ที่ใช้ถ้อยคำในเงื่อนไขที่หยาบเช่นนั้น ฉันไม่แน่ใจว่าฉันควรถามคำถามนี้ที่นี่หรือใน DS / SC แต่ CS นั้นใหญ่ที่สุดในสามดังนั้นที่นี่จะไป (หลังจากที่ฉันโพสต์มันเกิดขึ้นกับฉันว่าการตรวจสอบข้ามอาจเป็นสถานที่ที่ดีกว่าสำหรับมัน แต่อนิจจา) ลองนึกภาพว่ามีเอเจนต์ผู้ทำการตัดสินใจไบนารี และสภาพแวดล้อมซึ่งสำหรับการตัดสินใจของตัวแทนแต่ละคน ("การทดลอง") จะให้รางวัลแก่ตัวแทนหรือไม่ เกณฑ์การให้รางวัลการตัดสินใจของตัวแทนที่มีจะไม่ง่าย ในเกณฑ์ทั่วไปจะสุ่ม แต่มีข้อ จำกัด ตัวอย่างเช่นสิ่งแวดล้อมจะไม่ให้รางวัลมากกว่า 3 ครั้งสำหรับการตัดสินใจเดียวกันและไม่เคยสลับการตัดสินใจที่ให้รางวัลมากกว่า 4 ครั้งในแถว ลำดับของเกณฑ์อาจมีลักษณะเช่นนี้ 0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 ... แต่ไม่เคย 0 0 0 …

2
Decidability ของการตรวจสอบ antiderivative
สมมุติว่าฉันมีสองฟังก์ชั่น FFFและและฉันสนใจที่จะพิจารณาว่าGGG F(x)=∫G(x)dx.F(x)=∫G(x)dx.F(x) = \int G(x)dx. สมมติว่าฟังก์ชั่นของฉันประกอบด้วยฟังก์ชั่นพื้นฐาน (พหุนาม, เอ็กซ์โปเนนเชียล, บันทึกและฟังก์ชั่นตรีโกณมิติ) แต่ไม่ใช่พูดซีรีย์เทย์เลอร์ ปัญหานี้ตัดสินได้หรือไม่? ถ้าไม่มันเป็น semidecidable? (ฉันถามเพราะฉันสอนชั้นเรียนเกี่ยวกับความสามารถในการคำนวณและนักเรียนถามฉันว่า TM จะช่วยให้คุณรวมฟังก์ชั่นที่ไม่รู้จักอินทิกรัลได้หรือไม่ฉันสงสัยว่าฟังก์ชั่นที่เราไม่รู้จะรวมกันเป็นอย่างไร ฟังก์ชั่นที่เหมาะสมซึ่งไม่สามารถแสดงอินทิกรัลเป็นการรวมกันของฟังก์ชั่นพื้นฐานด้านบนมากกว่าฟังก์ชั่นที่เราไม่รู้จักอินทิกรัล แต่จริง ๆ แล้วทำให้ฉันคิดว่าปัญหาทั่วไปของการตรวจสอบอินทิกรัล

1
การไม่กำหนดในเครื่องทัวริงที่ไม่ได้มีการกำหนดค่าแตกต่างจากเครื่องออโต้ จำกัด และการกดออโตมาต้าหรือไม่?
ให้รับสายป้อนเป็น W1W2. . .Wnw1w2...wnw_1w_2...w_n. จากนั้นหาก NFA อยู่ในสถานะปัจจุบันRrr (และอ่านตัวอักษรได้ไม่เกินตัว Wผมwiw_i ) จากนั้นก่อนที่จะอ่านสัญลักษณ์อินพุตถัดไป NFA จะแยกเป็นสอง NFA หนึ่งอันอยู่ในสถานะ Rrr และสิ่งมีชีวิตอื่น ๆ sssหากมีการเปลี่ยนประเภท R→εsr→ϵsr \xrightarrow{\epsilon} s. หากมีรอบประเภทR→εs→εQ1. . . .→εQk→εRr→ϵs→ϵq1....→ϵqk→ϵrr \xrightarrow{\epsilon} s \xrightarrow{\epsilon} q_1....\xrightarrow{\epsilon} q_k \xrightarrow{\epsilon} rที่ไหน Qผมqiq_i คือบางสถานะของ NFA ดังนั้นจึงไม่มีประโยชน์ในการจดจำ NFA อื่นในสถานะ Rrr จนถึงจุดที่อินพุตถูกอ่านจนถึงตัวอักษร Wผมwiw_i. หาก PDA (ไม่กำหนดค่า) อยู่ในสถานะRrr (และอินพุตจะอ่านจนถึง Wผมwiw_i ) และมีวงจรอยู่ …

1
จะวัดเอนโทรปีของไฟล์ได้อย่างไร?
ตอนนี้ฉันกำลังพยายามวัดข้อมูลที่ไม่ซ้ำซ้อน (จริง) ที่ไฟล์ของฉันมีอยู่ บางคนเรียกสิ่งนี้ว่าปริมาณของเอนโทรปี แน่นอนว่ามีมาตรฐาน p (x) log {p (x)} แต่ฉันคิดว่าแชนนอนเป็นเพียงการพิจารณาจากมุมมองของการส่งผ่านแม้ว่าช่องสัญญาณ ดังนั้นสูตรต้องมีขนาดบล็อก (พูดเป็นบิตโดยทั่วไป 8) สำหรับไฟล์ขนาดใหญ่การคำนวณนี้ค่อนข้างไร้ประโยชน์โดยไม่คำนึงถึงความสัมพันธ์ระยะสั้นและระยะยาวระหว่างสัญลักษณ์ มีต้นไม้ไบนารีและวิธีการ Ziv-Lempel แต่สิ่งเหล่านี้ดูเหมือนเป็นเรื่องวิชาการในธรรมชาติ ความสามารถในการบีบอัดก็ถือได้ว่าเป็นมาตรวัดของเอนโทรปี สำหรับไฟล์ hiss.wav ของฉัน ต้นฉบับ hiss.wav = 5.2 MB เอนโทรปีผ่านสูตรแชนนอน = 4.6 MB hiss.zip = 4.6 MB hiss.7z = 4.2 MB hiss.wav.fp8 = 3.3 MB มีวิธีการปฏิบัติที่สมเหตุสมผลในการวัดปริมาณเอนโทรปีใน hiss.wav หรือไม่?
9 entropy 

1
เกี่ยวกับกราฟที่ขอบชุดแตกออกเป็นการจับคู่ที่สมบูรณ์แบบ
มีลักษณะของกราฟที่ขอบชุดสลายตัวเป็นสหภาพที่ลงตัวสำหรับการจับคู่ที่สมบูรณ์แบบหรือไม่? หนึ่งชั้นเล็กน้อยของกราฟดังกล่าวคือกราฟสม่ำเสมอทวิภาคี ชุดขอบของพวกเขาจะสลายลงในจ้อที่สมบูรณ์แบบเคลื่อน ddd( n , n )(n,n)(n,n)ddd

3
วิธีแก้ปัญหาการจัดการที่ Archive Nationale of France โดยใช้ทฤษฎีกราฟ?
สวัสดีตอนเย็น! จริงๆแล้วฉันกำลังฝึกงานที่ Archives Nationales of France และฉันพบสถานการณ์ที่ฉันต้องการแก้ปัญหาโดยใช้กราฟ ... I. สถานการณ์ที่เต็มไปด้วยฝุ่น เราต้องการเพิ่มประสิทธิภาพการจัดเรียงหนังสือในห้องสมุดของฉันตามความสูงเพื่อลดต้นทุนการเก็บถาวร ความสูงและความหนาของหนังสือเป็นที่รู้จัก เราได้จัดเรียงหนังสือตามลำดับความสูง (ฉันไม่รู้ว่ามันเป็นสิ่งที่ดีที่สุด แต่ ... นั่นคือวิธีที่เราทำ) เมื่อทราบความหนาของหนังสือแต่ละเล่มเราสามารถกำหนดความหนาที่จำเป็นสำหรับแต่ละชั้นสำหรับการจัดเรียงเรียกว่า (ตัวอย่างเช่นหนังสือที่สูงอาจมีความหนารวม )H1,H2, … ,HnH1,H2,…,HnH_1,H_2,\dots,H_nHผมHiH_iLผมLiL_iHผม= 23คเมตรHi=23cmH_i = 23\,\mathrm{cm}Lผม= 300คเมตรLi=300cmL_i = 300\,\mathrm{cm} ห้องสมุดสามารถผลิตชั้นวางที่กำหนดเองโดยระบุความยาวและความสูงที่ต้องการ ชั้นวางของความสูงและความยาวค่าใช้จ่าย โดยที่เป็นต้นทุนคงที่และคือต้นทุนของชั้นวางต่อหน่วยความยาวHผมHiH_ixผมxix_iFผม+คผมxผมFi+CixiF_i+C_ix_iFผมFiF_iคผมCiC_i โปรดทราบว่าการเก็บรักษาของความสูงสามารถใช้ในการเก็บหนังสือของความสูง กับฉัน เราต้องการลดต้นทุนHผมHiH_iHJHjH_jj ≤ ฉันj≤ij\leq i ผู้สอนของฉันแนะนำว่าฉันทำแบบจำลองปัญหานี้เป็นปัญหาในการค้นหาเส้นทาง รูปแบบที่อาจเกี่ยวข้องกับการจุดจัดทำดัชนีแบบฟอร์มเพื่อnพี่เลี้ยงของฉันแนะนำให้ผมทำงานออกเงื่อนไขที่มีอยู่แต่ละขอบหมายและวิธีการในการทำงานจากการประเมินค่าที่เกี่ยวข้องกับขอบj) ฉันก็จะตกลงกับโซลูชั่นอื่น ๆ เช่นเดียวกับข้อมูลเชิงลึกn + 1n+1n+1000nnnv ( i , j )v(i,j)v(i,j)( i …

1
คุณพิจารณาจำนวนข้อผิดพลาดในอัลกอริทึม Welch-Berlekamp อย่างไร
ในอัลกอริทึม Welch-Berlekamp สำหรับการถอดรหัสรหัส Reed-Solomon หนึ่งจะได้รับรายการของจุดแสดงถึงข้อความที่มีข้อผิดพลาดในในสถานที่ที่ไม่รู้จัก (และมอบให้กับอัลกอริทึม) ผลลัพธ์คือพหุนามผ่านจุดที่กำหนดทั้งหมดยกเว้นที่เกิดข้อผิดพลาด(ai,bi)(ai,bi)(a_i, b_i)eeebibib_ieee วิธีนี้เกี่ยวข้องกับการแก้ระบบสมการเชิงเส้นของแบบฟอร์ม biE(ai)=Q(ai)biE(ai)=Q(ai)b_i E(a_i) = Q(a_i) สำหรับทุกที่มีปริญญาและมีการศึกษาระดับที่มากที่สุด k ตัวแปรที่มีค่าสัมประสิทธิ์ของและQiiiEEEeeeQQQe+ke+ke+kEEEQQQ เพื่อให้แน่ใจว่ามีระดับหนึ่งมักจะเพิ่มข้อ จำกัด ที่สัมประสิทธิ์ของเป็น 1 กับระบบเชิงเส้นด้านบน แต่ในทางปฏิบัติอย่างใดอย่างหนึ่งไม่จำเป็นต้องรู้ว่าอีวิธีหนึ่งที่ไม่มีประสิทธิภาพ (แต่ยังคงเป็นพหุนาม) วิธีที่จะจัดการกับสิ่งนี้คือลองสำหรับค่าทั้งหมดที่เริ่มต้นด้วยจะลดลงจนกว่าจะพบวิธีแก้ปัญหาEEEeeexexex^eeeeeee(n+k−1)/2−1(n+k−1)/2−1(n+k-1)/2 - 1 คำถามของฉันคือ: มีวิธีที่มีประสิทธิภาพมากขึ้นเพื่อกำหนด ? eeeอีกวิธีหนึ่งมีการปรับเปลี่ยนระบบเชิงเส้นที่อนุญาตให้หนึ่งใช้ขอบเขตบนบนแทนค่าที่แน่นอน?eee โดยเฉพาะฉันต้องการใช้ตัวถอดรหัสนี้สำหรับรหัส Reed-Solomon และไม่ใช่อัลกอริทึมที่แตกต่างอย่างสิ้นเชิงตามเทคนิคอื่น ๆ เพื่อตอบสนองต่อคำตอบของ DW นี่คือตัวอย่างการทำงานของฉัน ทุกอย่างเสร็จสิ้นแบบโมดูโล 7 plain message is: [2, 3, 2] polynomial is: 2 + 3 …

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

2
ค้นหาจุดศูนย์กลางในชุดจุดชี้วัดในพื้นที่น้อยกว่า
ฉันมีชุดของ nnnจุดที่กำหนดไว้ในช่องว่างเมตริก - ดังนั้นฉันสามารถวัด 'ระยะทาง' ระหว่างจุด แต่ไม่มีอะไรอื่น ฉันต้องการค้นหาจุดศูนย์กลางที่มากที่สุดภายในชุดนี้ซึ่งฉันกำหนดเป็นจุดที่มีผลรวมระยะทางขั้นต่ำไปยังจุดอื่นทั้งหมด การคำนวณเมทริกช้าดังนั้นจำเป็นต้องหลีกเลี่ยงหากเป็นไปได้ วิธีที่ชัดเจนในการค้นหาจุดนี้ใช้ n2n2n^2 การคำนวณระยะทางตัวชี้วัดเนื่องจากเป็นเพียง (a) คำนวณสำหรับแต่ละจุดผลรวมของระยะทางไปยังจุดอื่นทั้งหมดจากนั้น (b) ใช้จุดต่ำสุด มีวิธีการทำเช่นนี้ในเวลาน้อยกว่า โอ(n2)O(n2)O(n^2)เปรียบเทียบระยะทาง? (อาจใช้ประโยชน์จากความไม่เท่าเทียมกันของสามเหลี่ยมในบางวิธีซึ่งควรถือด้วยเมทริกของฉัน) การประมาณที่ดีอาจพอเพียงถ้าไม่มีวิธีที่แน่นอน

1
ข้อขัดแย้งผลักดันให้เกิดการเรียนรู้การทำให้ชัดเจนย้อนรอย
ในหน้าวิกิพีเดียที่นี่มันอธิบายอัลกอริธึม CDCL ได้ค่อนข้างดี (และดูเหมือนว่าภาพจะถูกถ่ายจากสไลด์ที่สร้างโดย Sharad Malik ที่ Princeton) อย่างไรก็ตามเมื่ออธิบายถึงวิธีการย้อนรอยทั้งหมดมันบอกว่าเป็น "ไปยังจุดที่เหมาะสม" MiniSAT ยังใช้อัลกอริทึมชุด CDCL ที่แตกต่างกันดังนั้นฉันอ่านบทความนี้. สิ่งที่พวกเขาดูเหมือนจะพูดคือคุณควรย้อนกลับจนกว่าประโยคที่เรียนรู้จะเป็นประโยคย่อย นั่นเป็นการชี้แจงอย่างชัดเจน แต่มันก็ไม่สมเหตุสมผลสำหรับฉัน การมอบหมายครั้งสุดท้ายจะเป็นส่วนหนึ่งของประโยคความขัดแย้งที่เรียนรู้เท่าที่ฉันสามารถบอกได้ (บางทีฉันผิดที่นี่?) ดังนั้นเมื่อคุณย้อนกลับไปหนึ่งขั้นตอนคุณจะสร้างหน่วยการเรียนรู้ทันทีค่าที่มอบหมายสุดท้ายจะพลิก และอัลกอริทึมจะดำเนินการตรงตาม DPLL โดยไม่ต้องย้อนรอยย้อนกลับไปไกลพอสมควร นอกจากนี้หน้าวิกิพีเดียไม่ปฏิบัติตามกฎนี้มันย้อนรอยมากขึ้นตามที่ต้องการ ไกลแค่ไหนที่ควรจะย้อนรอย?

1
อะไรคือความสัมพันธ์ระหว่างเครื่องจักรทัวริงกับเทป จำกัด และ Automite State Automata?
ฉันดูเหมือนจะจำได้จากชั้นเรียนระดับปริญญาตรีว่าสำหรับเครื่องทัวริงที่มีเทป จำกัด จะมี Finite State Automata ที่เกี่ยวข้องเสมอ แต่ฉันไม่สามารถหาสิ่งนี้ได้รับการยืนยันทุกที่บนอินเทอร์เน็ต นี่เป็นกรณีจริงหรือฉันเข้าใจผิดหรือไม่?

2
ความสม่ำเสมอของภาษาเอกนารีที่มีความยาวรวมสองคำ สามสี่เหลี่ยม
ฉันคิดถึงภาษาเอก LkLkL_kที่ไหน LkLkL_k คือชุดของคำทั้งหมดที่ความยาวคือผลรวมของ kkkสี่เหลี่ยม อย่างเป็นทางการ: Lk={an∣n=∑i=1kni2,ni∈N0(1≤i≤k)}Lk={an∣n=∑i=1kni2,ni∈N0(1≤i≤k)}L_k=\{a^n\mid n=\sum_{i=1}^k {n_i}^2,\;\;n_i\in\mathbb{N_0}\;(1\le i\le k)\} มันง่ายที่จะแสดงให้เห็นว่า L1={an2∣n∈N0}L1={an2∣n∈N0}L_1=\{a^{n^2}\mid n\in\mathbb{N_0}\}ไม่ปกติ (เช่นกับ Pumping-Lemma) ยิ่งไปกว่านั้นเรารู้ว่าจำนวนธรรมชาติแต่ละตัวนั้นคือผลรวมของสี่เหลี่ยมจัตุรัสสี่อันซึ่งมีความหมายว่าk≥4k≥4k\ge 4 ทุกภาษา LkLkL_k เป็นปกติตั้งแต่ Lk=L(a∗)Lk=L(a∗)L_k=L(a^*). ตอนนี้ฉันสนใจในกรณี k=2k=2k=2 และ k=3k=3k=3: L2={an12+n22∣n1,n2∈N0}L2={an12+n22∣n1,n2∈N0}L_2=\{a^{{n_1}^2+{n_2}^2}\mid n_1,n_2\in\mathbb{N_0}\}, L3={an12+n22+n32∣n1,n2,n3∈N0}L3={an12+n22+n32∣n1,n2,n3∈N0}L_3=\{a^{{n_1}^2+{n_2}^2+{n_3}^2}\mid n_1,n_2,n_3\in\mathbb{N_0}\}. น่าเสียดายที่ฉันไม่สามารถแสดงได้ว่าภาษานี้เป็นภาษาปกติหรือไม่ (แม้จะได้รับความช่วยเหลือจากทฤษฎีบทสามสแควร์ของเลอช็องดร์หรือทฤษฎีบทของแฟร์มาต์ในจำนวนสองสแควร์ส ) ฉันค่อนข้างแน่ใจว่าอย่างน้อย L2L2L_2ไม่ใช่เรื่องปกติ แต่การคิดอย่างไม่มีความสุขไม่ใช่ข้อพิสูจน์ ความช่วยเหลือใด ๆ

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