การเลือกตั้งในวันที่ 24 มีนาคม 2562 ใกล้เข้ามาแล้ว สื่อหลายๆสำนักเริ่มมีการอธิบายวิธีการคิดคะแนนแบบใหม่ออกมาให้ประชาชนเข้าใจ
ไหนๆก็ไหนๆ เลยลองทำเว็บคำนวณคะแนนซะเลยจะได้รู้ว่าตัวเองเข้าใจถูกไหม ซึ่งการทำงานทั้งหมดทำบนเครื่องผู้ใช้เองด้วย javascript ไม่มีการส่งข้อมูลไปไหน
วิธีคำนวณอ้างอิงจากราชกิจจาฯฉบับนี้ ซึ่งเนื่องจากตัวเองไม่ใช่นักกฎหมาย บอกได้เลยว่าอ่านยากมาก แล้วถ้าใครเจอข้อผิดพลาดหรือบั๊กใดๆก็ตาม ไปแจ้งที่ github issue ได้เลยครับ
วิธีการคำนวณคะแนน
- เริ่มจากดูคะแนนจากทุกๆเขต
- เขตไหนมีสูงสุดเป็น “ไม่ออกเสียง” ให้ตัดคะแนนทิ้งทั้งเขต แล้วจัดเลือกตั้งใหม่เพื่อหา สส.เขตคนใหม่ (คะแนนที่จะนำมาคิดแบบบัญชีรายชื่อก็โยนทิ้ง)
- ถ้าคะแนนสูงสุดเป็นของผู้สมัครคนไหน ให้คนนั้นได้เป็น สส.เขตนั้น และเอาคะแนนของทุกพรรคไปบวกเป็นคะแนนรวมของพรรค
- เอาคะแนนรวมของแต่ละพรรคมารวมกันเป็นคะแนนรวมของประเทศ (ไม่นับ”ไม่ออกเสียง”)
- ตัวเลขสมมติ 10ล้าน เสียง
- เอาคะแนนรวมของประเทศหารห้าร้อย (แบ่งเขต 350 + บัญชีรายชื่อ 150) ได้คะแนนเก้าอี้
- เก้าอี้ละ 20,000 คะแนน
- เอาคะแนนรวมของแต่ละพรรคมาหารคะแนนเก้าอี้ ได้จำนวนเก้าอี้ที่แต่ละพรรคควรจะได้ (มีสิทธิ์เป็นทศนิยม)
- พรรคผ่อน ได้ 104,000 คะแนน ควรได้รวม 5.2 เก้าอี้
- พรรคจ่ายสด ได้ 446,000 คะแนน ควรได้รวม 22.3 เก้าอี้
- พรรคเบิ้ม ได้ 9,450,000 คะแนน ควรได้รวม 472.5 เก้าอี้
- เอาจำนวนเก้าอี้ของแต่ละพรรคลบจำนวนเขตที่ชนะ ได้จำนวนเก้าอี้บัญชีรายชื่อ (ไม่มีติดลบ)
- พรรคผ่อนไม่ชนะเขตไหนเลย ควรได้ 5.2 เก้าอี้บัญชีรายชื่อ
- พรรคจ่ายสดชนะไป 30 เขต ควรได้ 0 เก้าอี้บัญชีรายชื่อ
- พรรคเบิ้มชนะเขตที่เหลือ(320) ควรได้ 152.5 เก้าอี้บัญชีรายชื่อ
- ถึงขั้นนี้จะแยกออกเป็นสองกรณี นั่นคือจำนวนเก้าอี้บัญชีรายชื่อรวมกันทุกพรรคเกิน 150 ไหม (ถ้าไม่เกินให้ข้ามข้อนี้ไป)
- ในกรณีตัวอย่างจะเห็นว่าเกินให้ทำการปรับอัตราส่วนลงให้เหลือไม่เกิน 150
- พรรคผ่อนเหลือ 5.2 * 150 / (152.5 + 5.2) = 4.9461 เก้าอี้บัญชีรายชื่อ
- พรรคจ่ายสดยังคงเหลือ 0 เก้าอี้บัญชีรายชื่อ
- พรรคเบิ้มเหลือ 145.2380 เก้าอี้บัญชีรายชื่อ
- จัดสส.บัญชีรายชื่อให้ตามจำนวนเต็ม
- พรรคผ่อนได้ 4 เหลือ 0.9461
- พรรคจ่ายสดได้ 0 เหลือ 0
- พรรคเบิ้มได้ 145 เหลือ 0.2380
- ถ้าสส.บัญชีรายชื่อยังจัดสรรไม่ครบ (ซึ่งอาจจะเกิดจากบางพรรคมีสส.บัญชีรายชื่อที่ลงสมัครน้อยเกินไปก็ได้ เช่นถ้าพรรคผ่อนได้ 4 แต่มีลงสมัครแค่ 2 ก็เอาเก้าอี้ที่เหลือมานับขั้นนี้ด้วย)
- เท่ากับว่าเหลืออีก 3 เก้าอี้
- ให้วนแจกให้คนที่เหลือเศษสูงสุดทีละ 1 คน (พรรคไหนที่คนสมัครไม่พอก็อดไป) (ดูหมายเหตุ)
- เบิ้ม -> จ่ายสด -> เบิ้ม
- รวมที่นั่งได้ว่า
- พรรคผ่อน 0 แบ่งเขต 2 บัญชีรายชื่อ
- พรรคจ่ายสด 30 แบ่งเขต 1 บัญชีรายชื่อ
- พรรคเบิ้ม 320 แบ่งเขต 147 บัญชีรายชื่อ
หมายเหตุ
ถ้าเศษเหลือเท่ากันแล้วเก้าอี้เหลือไม่พอ เช่นเศษเท่ากัน 3 พรรค แต่เหลือเก้าอี้บัญชีรายชื่อแค่ 2 เก้าอี้
ให้เอาคะแนนรวมของพรรคหารจำนวนเก้าอี้รวมที่ได้ไปแล้ว พรรคไหนเยอะกว่าให้พรรคนั้นก่อน
ถ้ายังเท่ากันอีก ให้จับสลากครับ
หมายเหตุ 2
ตัวคำนวณคะแนนสามารถรับไฟล์ csv โดยมีหน้าตาตัวอย่างดังนี้
ทั้งหมดห้ามมีเคาะ space และ separate charactor ต้องเป็น , สำหรับ column และ : สำหรับตรงชื่อพรรค
# | ชื่อพรรค1:จำนวนผู้สมัครบัญชีรายชื่อ1 | ชื่อพรรค2:จำนวนผู้สมัครบัญชีรายชื่อ2 | … |
---|---|---|---|
ชื่อเขต 1 | คะแนนของพรรค 1 ใน เขต 1 | คะแนนของพรรค 2 ใน เขต 1 | … |
ชื่อเขต 2 | คะแนนของพรรค 1 ใน เขต 2 | คะแนนของพรรค 2 ใน เขต 2 | … |
ชื่อเขต 3 | คะแนนของพรรค 1 ใน เขต 3 | คะแนนของพรรค 2 ใน เขต 3 | … |
จากไฟล์ตัวอย่างจะได้คำอธิบายประมาณนี้
# | ก:150 | ข:150 | ค:150 | ง:150 | จ:150 |
---|---|---|---|---|---|
1 | 10 | 10 | 10 | 10 | 15 |
2 | 10 | 10 | 10 | 15 | 10 |
3 | 10 | 10 | 15 | 10 | 10 |
4 | 10 | 15 | 10 | 10 | 10 |
5 | 15 | 10 | 10 | 10 | 10 |