ค้นหา
  
Search Engine Optimization Services (SEO)

การเขียนโปรแกรมเชิงแข่งขัน

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

การตัดสินผลโดยทั่วไปจะดูที่จำนวนโจทย์ที่ทำได้กับเวลาที่ใช้ในการเขียนโปรแกรมรวมทั้งหมด และอาจจะมีปัจจัยอื่น ๆ ที่นำมาพิจารณาด้วย เช่น ขนาดของโปรแกรม เวลาทำงานของโปรแกรม หรือการเทียบคำตอบกันระหว่างผู้เข้าแข่งขันด้วยกันเอง

การเขียนโปรแกรมเชิงแข่งขันเป็นกีฬาที่เพิ่งเกิดขึ้นไม่นานเมื่อเทียบกับกีฬาความคิดชนิดอื่น ๆ เนื่องจากสาขาวิทยาการคอมพิวเตอร์ก็เป็นสาขาที่เพิ่งเกิดขึ้นไม่นานเมื่อเทียบกับสาขาวิทยาศาสตร์อื่น ๆ เช่นกัน หนึ่งในการแข่งขันที่เก่าแก่ที่สุดคือ ACM ICPC ซึ่งเริ่มต้นแข่งขันขึ้นในทศวรรตที่ 1970 ปัจจุบันการแข่งขันดังกล่าวมีประเทศเข้าร่วมกว่า 90 ประเทศแล้ว

ความสนใจในการเขียนโปรแกรมเชิงแข่งขันเพิ่มขึ้นอย่างรวดเร็วหลังปี 2000[ต้องการอ้างอิง] ซึ่งก็เกิดขึ้นจากการที่อินเทอร์เน็ตเริ่มเป็นที่แพร่หลาย ส่งผลให้สามารถจัดการแข่งขันออนไลน์ได้โดยไม่มีปัญหาด้านสถานที่

เป้าหมายของการเขียนโปรแกรมเชิงแข่งขันคือการเขียนและส่งรหัสต้นฉบับของโปรแกรมคอมพิวเตอร์เพื่อแก้ปัญหาต่าง ๆ ที่ผู้ออกโจทย์กำหนดให้ ปัญหาที่ใช้ในการแข่งขันจะเกี่ยวกับตรรกะหรือคณิตศาสตร์ เช่น คณิตศาสตร์เชิงการจัด ทฤษฎีจำนวน ทฤษฎีกราฟ เรขาคณิต สตริง โครงสร้างข้อมูล และในการแข่งขันบางรายการจะนิยมปัญหาเกี่ยวกับปัญญาประดิษฐ์เป็นอย่างมาก

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

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

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

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

การแข่งขันนอกสถานที่คือการแข่งขันที่ผู้เข้าแข่งขันจะต้องเดินทางไปยังสถานที่ซึ่งผู้จัดการแข่งขันเตรียมไว้ให้และเข้าแข่งขัน โดยส่วนมากแล้วการแข่งขันเหล่านี้จะมีรางวัลแก่ผู้เข้าร่วมแข่งขัน เช่น เงิน หรือรางวัลเป็นเหรียญ ตัวอย่างการแข่งขันประเภทนี้คือ

ทั้งนี้ การแข่งขันนอกสถานที่บางรายการอาจจะมีการคัดเลือกผู้เข้าแข่งขันมาจากการแข่งขันออนไลน์ก่อน ส่วนมากจะเป็นในรายการแข่งขันที่มีผู้เข้าแข่งขันจำนวนมาก ทำให้ต้องมีการแข่งขันออนไลน์หลาย ๆ รอบเพื่อคัดเลือกผู้เข้าแข่งขันให้เหลือน้อยลง และผู้เข้าแข่งขันที่ผ่านจนถึงรอบชิงชนะเลิศจะได้ไปแข่งนอกสถานที่ เช่น

การแข่งขันออนไลน์คือการแข่งขันที่ผู้เข้าแข่งขันสามารถเข้าร่วมได้ผ่านทางอินเทอร์เน็ตได้ ส่วนมากจะไม่มีรางวัลตอบแทน

โดยส่วนใหญ่แล้วเว็บแข่งขันออนไลน์ก็จะมีระบบตรวจออนไลน์ด้วย โดยนำโจทย์จากการการแข่งขันออนไลน์รอบก่อน ๆ มาให้ฝึกหัด

ระบบตรวจออนไลน์คือเว็บที่รวบรวมโจทย์ต่าง ๆ ไว้เผื่อให้ฝึกหัดการเขียนโปรแกรม โจทย์อาจจะเป็นโจทย์จากการแข่งขันที่จบแล้ว หรือโจทย์ที่ตั้งใจเขียนมาลงในระบบตรวจออนไลน์โดยเฉพาะก็ได้

ในประเทศไทย การแข่งขันเขียนโปรแกรมส่วนมากโดยเฉพาะอย่างยิ่งในระดับชั้นมัธยมศึกษาเกิดจากการส่งเสริมของสถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี (สสวท.) เพื่อผลักดันโครงการคอมพิวเตอร์โอลิมปิกของประเทศไทย ความสนใจในการเขียนโปรแกรมเชิงแข่งขันนี้เพิ่มขึ้นเป็นอย่างมากจากการที่ประเทศไทยได้เป็นเจ้าภาพในการจัดการแข่งขันคอมพิวเตอร์โอลิมปิกนานาชาติครั้งที่ 23 ในปี 2011 โดยได้มีการเปิดเว็บไซต์ระบบตรวจออนไลน์ programming.in.th การแข่งขันออนไลน์และนอกสถานที่ IOI Thailand League 2010 หรือการแข่งขัน Thailand Code Jom ที่เลียนแบบการแข่งขัน Google Code Jam เป็นต้น เพื่อส่งเสริมให้นักเรียนระดับชั้นมัธยมศึกษาสนใจในการเขียนโปรแกรม ส่วนในระดับชั้นมหาวิทยาลัยก็จะมีการแข่งขัน ACM ICPC ซึ่งคณะวิศวกรรมศาสตร์ของมหาวิทยาลัยต่าง ๆ มักจะเข้าร่วมด้วย


 

 

รับจำนำรถยนต์ รับจำนำรถจอด

แรง (ฟิสิกส์) ความยาว การเคลื่อนที่ ทฤษฎีเคออส กลศาสตร์แบบลากรางช์ เอนริโก แฟร์มี สมมาตรยิ่งยวด CERN Large Hadron Collider ไอน์สไตน์ ทฤษฎีสัมพัทธภาพทั่วไป กาลิเลโอ ฟิสิกส์อนุภาค วิศวกรรมวัสดุ เซมิคอนดักเตอร์ นาโนเมตร วัสดุนาโน วัสดุฉลาด วัสดุเชิงก้าวหน้า วัสดุชีวภาพ พอลิเมอร์ เซรามิก สเปกโตรสโกปี อุณหเคมี ไฟฟ้าเคมี เคมีเชิงฟิสิกส์ โลหะอินทรีย์เคมี เคมีพอลิเมอร์ เคมีนิวเคลียร์ ชีววิทยาโมเลกุล เคมีเวชภัณฑ์ เคมีดาราศาสตร์ เคมีไคเนติกส์ สารประกอบอนินทรีย์ สารประกอบเคมี สารประกอบ John Dalton ทฤษฎีโฟลจิสตัน อ็องตวน ลาวัวซีเย Robert Boyle ปฏิกิริยาเคมี รายชื่อคณะวิทยาศาสตร์ในประเทศไทย เคมีสิ่งแวดล้อม วิทยาศาสตร์สิ่งแวดล้อม Social psychology วิทยาศาสตร์สังคม เทคนิคการแพทย์ เวชศาสตร์ พยาธิวิทยา เนื้องอกวิทยา ทัศนมาตรศาสตร์ Pharmacy บรรณารักษศาสตร์และสารนิเทศศาสตร์ วิทยาศาสตร์พุทธิปัญญา สารสนเทศศาสตร์ วิทยาการสารสนเทศ สัตววิทยา วิทยาไวรัส ประสาทวิทยาศาสตร์ อณูชีววิทยา จุลชีววิทยา วิทยาภูมิคุ้มกัน มีนวิทยา มิญชวิทยา กีฏวิทยา Developmental biology วิทยาเซลล์ ชีววิทยาของเซลล์ วิทยาแผ่นดินไหว ชลธารวิทยา สมุทรศาสตร์ เคมีความร้อน เคมีไฟฟ้า เคมีการคำนวณ เคมีวิเคราะห์ Particle physics พลศาสตร์ของไหล พลศาสตร์ สวนศาสตร์ ฟิสิกส์เชิงทฤษฎี โป๊ป ความเรียง เรอเน เดส์การตส์ การสังเกต การทดลอง ฟรานซิส เบคอน กระบวนการทางวิทยาศาสตร์ ความรู้เชิงประจักษ์ คณิตตรรกศาสตร์ เครือข่ายคอมพิวเตอร์เพื่อโรงเรียนไทย ไม้บรรทัด กระดูกนาเปียร์ ลูกคิด การแข่งขันคณิตศาสตร์ รางวัลอาเบล เหรียญฟิลด์ส ปัญหาของฮิลแบร์ท กลุ่มความซับซ้อน พี และ เอ็นพี ข้อความคาดการณ์ของปวงกาเร สมมติฐานความต่อเนื่อง

 

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
จำนำรถราชบุรี รถยนต์ เงินด่วน รับจำนำรถยนต์ จำนำรถยนต์ จำนำรถ 24187