ฉันจะป้องกันข้อได้เปรียบที่เป็นตัวเลขขนาดเล็กจากการมีส่วนร่วมในการเผชิญหน้าได้อย่างไร?


27

ฉันได้พบกับเกมมาระยะหนึ่งแล้วและฉันมีปัญหากับบางสิ่ง:

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

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

ฉันได้ลองถ่วงน้ำหนักแอตทริบิวต์ 'ที่เกี่ยวข้องที่สุด' สำหรับการทดสอบที่ 80% และผลรวมของคุณลักษณะอื่น ๆ ที่ 20% ฉันพยายามเปรียบเทียบค่าเฉลี่ยเพื่อสร้างความแตกต่างสัมพัทธ์และใช้สิ่งนั้นเพื่อเพิ่มตัวละครที่อ่อนแอ ทั้งสองวิธีทำให้เกิดข้อได้เปรียบที่สำคัญที่ฉันพยายามลบ (ตัวอย่างเช่นถ้าฉันพบ 5,000 ครั้งมันจะทำให้ฝ่ายหนึ่งชนะทั้ง 5,000 ครั้ง)

การเพิ่มองค์ประกอบ "โชค" ก็มีความสำคัญเช่นกันหากว่ามีการถ่วงน้ำหนักอย่างใดอย่างหนึ่งเพื่อให้สอดคล้องกับตัวละครที่น้อยกว่าและฉันไม่ได้สมดุลที่ดีที่นั่น

ฉันสามารถใช้วิธีการใดในการลดผลกระทบของข้อได้เปรียบเชิงตัวเลขเล็กน้อย แต่ยังคงรักษาและเพิ่มความได้เปรียบนั้นเมื่อช่องว่างสัมพัทธ์ในคุณลักษณะเพิ่มขึ้น


ตามคำขอนี่คือรายละเอียดที่ฉันมีจนถึงตอนนี้ บางสิ่งที่ฉันยังไม่เข้าใจดังนั้นพวกเขาจึงยังคงเป็นคนทั่วไป:

ในขณะนี้การม้วนจะถูกสร้างขึ้นเป็น

0.8 * (mainAttribute) + 0.2 (1/3 * subAttA + 1/3 * subAttB * 1/3 subAttC)

ในปัจจุบันสิ่งนี้สร้างตัวเลขในพื้นที่ใกล้เคียง 4.0 แอตทริบิวต์จะถูกสร้างแบบสุ่มระหว่างช่วงที่ระบุ การทดสอบปัจจุบันใช้อักขระหนึ่งตัวที่มีคุณลักษณะตั้งแต่ 2 ถึง 4 และคู่ต่อสู้ระหว่าง 3 ถึง 5 คาดการณ์ว่าจะสร้างค่าเฉลี่ยใกล้เคียงกับ 3 และ 4 ตามลำดับ

ด้วยความได้เปรียบเพียงจุดเดียวนี้ฉันต้องการเห็นความแข็งแกร่งของการชนะสองครั้งในพื้นที่ 55% ถึง 60% ของเวลาด้วยการขยายขนาดนี้เพื่อชนะประมาณ 80% ของเวลาด้วยความได้เปรียบของคุณลักษณะโดยเฉลี่ยของ 5 หรือ 6, 90% ที่ข้อดีของ 7 หรือ 8 ออกจากห้องเพื่อชนะไม่น่าสนใจเมื่อช่องว่างใหญ่ขึ้น ฉันไม่ต้องการที่จะรับประกันการชนะ แต่บางทีสิ่งต่าง ๆ ไม่น่าจะเป็นไปได้ - เมื่อเทียบกับการชนะ 99.5% หรือ 99.6% ของเวลาที่ช่องว่างมีขนาดใหญ่มาก

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

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


2
คุณพูดว่า "บทบาทถูกสร้างขึ้น" แต่จากนั้นคุณโพสต์สูตรที่จะสร้างหมายเลขคงที่เสมอ การสุ่มอยู่ที่ไหน
ฟิลิปป์

1
ดังนั้นถ้าฉันเข้าใจคุณอย่างถูกต้องการสุ่มในเกมช่างของคุณคือการสุ่มเลือกคุณสมบัติหลัก?
ฟิลิปป์

2
แต่ตามที่ @Philipp บอกเป็นนัยแล้วความพยายาม 5,000 ครั้งจะให้ผลลัพธ์ที่เหมือนกันทุกประการ หรือคุณสร้างคุณลักษณะใหม่แต่ละแบบจำลอง
Felsir

1
หนึ่งในสองคนนี้จะชนะได้อย่างไรหากพวกเขาไม่ได้มีปฏิสัมพันธ์ซึ่งกันและกัน ดูเหมือนว่ามีข้อมูลบางอย่างหายไปที่นี่?
Erik

1
การม้วนแต่ละรายการจะถูกนำไปเปรียบเทียบกับเป้าหมายที่ต้องการในการเข้าถึง หากมีใครมาถึงและอีกคนหนึ่งก็ไม่ชนะ หากพวกเขาทั้งสองไปถึงที่สูงกว่าของทั้งสองชนะ หากไม่ถึงไม่ได้รับคะแนน ในความเป็นไปได้ที่จะเกิดการเสมอกันพวกเขาแยกประเด็น โดย 'ไม่โต้ตอบ' ฉันหมายถึงไม่ตีหรือป้องกันซึ่งกันและกันในความหมายดั้งเดิมเนื่องจากเป็นจุดเริ่มต้นของการอภิปราย
ffenliv

คำตอบ:


36

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

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

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

PowerA | PowerB | Win chance of A
  9    |   1    |    94.5%
  8    |   2    |    87.5%
  7    |   3    |    78.6%
  6    |   4    |    66.6%
  5    |   5    |    50.0%
  4    |   6    |    33.3%
  3    |   7    |    21.5%
  2    |   8    |    12.5%
  1    |   9    |    5.5%

สิ่งที่ดีเกี่ยวกับอัลกอริทึมนี้คือมันปรับขนาดได้ไม่ว่าคุณจะติดต่อกับตัวเลขจำนวนเท่าใด โอกาสของ 0.3 กับ 0.7 จะเหมือนกับของ 3 กับ 7, 300 กับ 700 หรือ 3,000,000,000 เทียบกับ 7,000,000,000

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

| A | B | Iterations
|   |   |       1 |     2 |     3 |     4 |     5 |     6 |     7 |     8 |     9 |
-----------------------------------------------------------------------------------
| 9 | 1 |   94.5% | 99.3% | 99.9% |100.0% |100.0% |100.0% |100.0% |100.0% |100.0% | 
| 8 | 2 |   87.4% | 96.3% | 98.8% | 99.5% | 99.8% |100.0% |100.0% |100.0% |100.0% | 
| 7 | 3 |   78.7% | 89.2% | 94.0% | 96.6% | 97.8% | 98.9% | 99.2% | 99.6% | 99.7% | 
| 6 | 4 |   66.8% | 74.3% | 79.2% | 82.9% | 85.7% | 88.0% | 89.9% | 91.2% | 92.5% | 
| 5 | 5 |   50.0% | 50.0% | 50.0% | 50.0% | 50.0% | 50.0% | 50.0% | 50.0% | 50.0% | 
| 4 | 6 |   33.6% | 25.6% | 20.9% | 17.1% | 14.7% | 12.0% | 10.2% |  8.9% |  7.5% | 
| 3 | 7 |   21.4% | 10.7% |  6.0% |  3.5% |  2.0% |  1.2% |  0.7% |  0.4% |  0.3% | 
| 2 | 8 |   12.7% |  3.7% |  1.2% |  0.4% |  0.1% |  0.1% |  0.0% |  0.0% |  0.0% | 
| 1 | 9 |    5.5% |  0.7% |  0.1% |  0.0% |  0.0% |  0.0% |  0.0% |  0.0% |  0.0% | 

ผลลัพธ์ 100% และ 0% ในตารางด้านบนเป็นภาพลวงตาเนื่องจากความแตกต่างในการปัดเศษ เว้นแต่ว่าpowerคู่ต่อสู้นั้นจะมีค่าเท่ากับ 0 แน่นอนว่าความเป็นไปได้ที่พวกเขาจะชนะเสมอ มันไม่ได้เกิดขึ้นในการทดสอบข้างต้นดังนั้นคุณสามารถคาดหวังว่ามันจะต่ำกว่า 1: 100,000

คุณอาจสังเกตเห็นความผิดปกติเล็กน้อยบางอย่างซึ่งอาจเกิดจากอารมณ์แปรปรวนของ java.lang.Random และอาจไม่ปรากฏขึ้นเมื่อคุณเรียกใช้รหัสอีกครั้งด้วยเมล็ดที่แตกต่างกัน

โปรแกรมที่ฉันใช้สร้างตารางนี้ (Java)

public class Main {

    private static Random random = new Random();
    private static final int SAMPLES = 100000;

    public static void main(String[] args) {        
        for (int i = 1; i < 10; i++) {
            double powerA = 10.0 - i;
            double powerB = i;
            System.out.print("| ");
            System.out.print((int)powerA);
            System.out.print(" | ");
            System.out.print((int)powerB);
            System.out.print(" |   ");

            for (int iterations = 1; iterations < 10; iterations++) {
                int wins = 0;
                for (int j = 0; j < SAMPLES; j++) {
                    if (fight(powerA, powerB, iterations)) wins++;
                }
                System.out.print(String.format("%2.1f", 100.0 * (double)wins / (double)SAMPLES));
                System.out.print("% | ");
            }
            System.out.print("\n");
        }       
    }

    private static boolean fight(double powerA, double powerB, int iterations) {        
        double sumA = 0.0f;
        double sumB = 0.0f;     
        for (int i = 0; i < iterations; i++) {
            sumA += random.nextDouble() * powerA;
            sumB += random.nextDouble() * powerB;

        }       
        return sumA > sumB;
    }
}

หากคุณต้องการที่จะใช้รหัสนี้ในเกมของคุณก็จะได้รับใบอนุญาตภายใต้ใบอนุญาต WTF มหาชนรุ่นที่ 2 ที่เผยแพร่โดยแซม Hocevar


นี่เป็นวิธีการที่น่าสนใจ ในความพยายามของฉันฉันไปครึ่งทางกับเรื่องนี้ ฉันจะสายนี้และลอง ขอบคุณมาก.
ffenliv

10
1 - powerA / ( 2 * powerB )เปอร์เซ็นต์ในตารางแรกของคุณสามารถคำนวณได้ตรงตามที่
Kyle

2
@Kyle powerA < powerBที่ทำงานเฉพาะตราบใดที่ เมื่อ powerA powerB / (2 * powerA)มีขนาดใหญ่คุณจะต้องสลับไป
Dorus

1
ฉันไม่แน่ใจว่า StackExchange ToS จะช่วยให้คุณหลงทางจากเว็บไซต์ที่บังคับใช้สิทธิ์ในเนื้อหาและรหัสแม้ว่าใบอนุญาตของคุณจะได้รับอนุญาตมากกว่าของพวกเขา แน่นอนว่าเป็นไปไม่ได้ที่จะพบว่ามันเป็น MIT หรือ CC ที่เสนอ
Lars Viklund

5
@LarsViklund คุณกำลังเริ่มการสนทนานอกหัวข้อที่นี่ แต่ไม่ใช่นี่ไม่ถูกต้อง ใบอนุญาตในการแลกเปลี่ยนเป็นแบบไม่ผูกขาดซึ่งหมายความว่าฉันยังคงมีอิสระที่จะมอบทรัพย์สินทางปัญญาของฉันภายใต้ข้อกำหนดสิทธิการใช้งานอื่น ๆ เมื่อฉันต้องการ การมีส่วนร่วมของฉันได้รับอนุญาตเป็นคู่ภายใต้ CC-BY-SA (ตามคำสั่งของ Stackexchange) และ WTFPL คุณสามารถเลือกภายใต้เงื่อนไขที่คุณต้องการใช้ผลงานของฉัน
ฟิลิปป์

13

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

Difference (A-B) | %chance A wins
-----------------|---------------
+5 or greater    | 100%
+4               | 95%
+3               | 85%
+2               | 70%
+1               | 55%
0                | 50%

(คุณต้องการเพียงครึ่งโต๊ะเพียงเลือก A เป็นรายการที่มีสถิติสูงกว่าเสมอ)

เห็นได้ชัดว่าตัวเลขเหล่านี้เป็นเพียงตัวอย่างคุณสามารถทำให้มันเป็นไปตามการกระจายตัวที่คุณต้องการ


2
แม้ว่าตอนนี้ฉันกำลังทำงานกับระบบตามคำตอบที่ยอมรับ แต่มันก็ค่อนข้างง่ายและอาจเป็นทางออกที่ดีสำหรับฉัน ฉันรู้ดีว่าการแลกเปลี่ยน Stack ที่ดีจะมาถึงฉัน
ffenliv

5

นี่เป็นคำถามที่ค่อนข้างลึกทีเดียวจากมุมมองของกลไกเกม แต่มีบางสิ่งที่อาจช่วยได้

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

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

พื้นหลังสำหรับสิ่งเหล่านี้คือสาเหตุที่ทำให้เกมหลายเกมต้องผ่านการปรับสมดุลของอาวุธและคลาสและสถิติ โลกหรือ Warcraft, Destiny, Diablo, Battlefield: เกมประเภทใดก็ได้ในประเภทใดก็ตามที่ต้องผ่านการปรับสมดุลและปรับตามเวลา

นี่อาจไม่ใช่คำตอบโดยตรง แต่คุณได้ขอแนวคิดทั่วไป ดังนั้นเรามาประเมินระบบการเล่นด้วย

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


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

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

2

มีสองสิ่งใหญ่

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

ประการที่สองการดูระบบอื่น ๆ เช่น D&D เป็นที่ชัดเจนว่าพวกเขาเพียงแค่ลดผลกระทบของคุณลักษณะอย่างมาก แทนที่จะให้สถิติฐานของคุณเพิ่มมูลค่า 80% ให้กับกฎให้ลดขนาดลงและทำให้การเพิ่มนั้นละเอียดยิ่งขึ้น ใน D&D เช่นถ้าคุณมีความชำนาญ 18 คนคุณจะได้รับโบนัส 4 เท่าสำหรับคลาสเกราะของคุณ

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


1d20 หรือ 6d6 หรือ 5d4 - ผลลัพธ์ไม่มากหรือน้อยแบบสุ่มคุณเปลี่ยนช่วงเท่านั้น สุ่มเป็นแบบสุ่ม การลดช่วงและโดเมนไม่เพียงพอที่จะทำให้ระบบสมดุล มีแนวโน้มที่จะดึงสิ่งต่างๆออกมาได้นานขึ้นเท่านั้น
Jesse Williams

8
@JesseWilliams ที่ไม่เป็นความจริง 1d20 มีโอกาสเท่าเทียมกันในการรับค่าใด ๆ ที่เป็นไปได้ ด้วย 5d4 คุณมีโอกาสมากที่จะได้ 12 หรือ 13 มากกว่าที่คุณจะได้ 20
Rob Watts

ม้วนหลายตัวยังช่วยซ่อนข้อบกพร่องในเครื่องกำเนิดตัวเลขดังนั้นมันจึงเป็นสิ่งสำคัญอย่างยิ่งในคอมพิวเตอร์ ในความเป็นจริงการรวมม้วนที่ระดับบิตระดับเป็นพื้นฐานของเครื่องกำเนิดไฟฟ้าจำนวนมาก
Yudrist

ฉันยืนแก้ไขแล้ว
Jesse Williams

3
@RobWatts ที่ยังไม่ได้สุ่มมากขึ้นหรือน้อยลงมันเป็นเพียงการกระจายตัวที่แตกต่างกัน การมีข้อมูลเกี่ยวกับ "ม้วน" ก่อนหน้านี้ไม่อนุญาตให้คุณคาดการณ์ผลลัพธ์ในอนาคตได้ดีขึ้น (ละเว้นข้อบกพร่องใน RNG) ดังนั้นจึงเป็นการสุ่ม
chbaker0

1

วิธีการเกี่ยวกับสิ่งนี้: เพิ่มค่าคงที่เช่น 1000 ให้กับแอตทริบิวต์ทั้งหมดที่เกี่ยวข้อง จากนั้นความแตกต่างสัมพัทธ์จะน้อยมาก


1

รู้ตัวเลขของคุณ

การเพิ่มคำตอบของฟิลิปป์เล็กน้อยนั่นคือแรนด์ [x] เมื่อเปรียบเทียบกับแรนด์ [y] อาจไม่ทำให้เกิดสิ่งที่เราคาดหวังเสมอไป ด้านล่างตารางที่เราเปรียบเทียบ A กับ B ทั้ง A และ B มีค่า 1 ... 10 เราเปรียบเทียบในสองวิธี (หมายเหตุ: rand () ในกรณีนี้จะสร้างจำนวนเต็มเช่นม้วน:

  1. แรนด์ [A]> แรนด์ [B]
  2. rand [A] ≥ rand [B] (เช่นมากกว่าหรือเท่ากับ)

นอกจากนี้เราเปรียบเทียบ

  1. แรนด์ [A ​​* 1000000]> แรนด์ [B * 1000000]
    (ในกรณีนี้ไม่เกี่ยวข้องกับว่ามันเป็น> หรือ≥เมื่อพวกเขาอยู่ใกล้มาก) ร่างใหญ่เหล่านี้อยู่ในวงเล็บ

เซลล์เก็บ% ของ ผลลัพธ์แต่ละรายการมีการซ้ำ 1 ล้านครั้ง (ทำโดยใช้Dyalog APL )

┌────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┐
 A      B  1 (1000000)│ 2 (2000000)│ 3 (3000000)│ 4 (4000000)│ 5 (5000000)│ 6 (6000000)│ 7 (7000000)│ 8 (8000000)│ 9 (9000000)│10(10000000)│
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 1 (1000000)│ >0(50) 100  >0(25) 50  >0(17) 33  >0(13) 25  >0(10) 20   >0(8) 17   >0(7) 14   >0(6) 13   >0(6) 11   >0(5) 10
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 2 (2000000)│>50(75) 100 >25(50) 75 >17(33) 50 >12(25) 38 >10(20) 30  >8(17) 25  >7(14) 21  >6(13) 19  >6(11) 17  >5(10) 15
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 3 (3000000)│>67(83) 100 >50(67) 83 >33(50) 67 >25(37) 50 >20(30) 40 >17(25) 33 >14(21) 29 >12(19) 25 >11(17) 22 >10(15) 20
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 4 (4000000)│>75(87) 100 >62(75) 88 >50(62) 75 >37(50) 63 >30(40) 50 >25(33) 42 >21(29) 36 >19(25) 31 >17(22) 28 >15(20) 25
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 5 (5000000)│>80(90) 100 >70(80) 90 >60(70) 80 >50(60) 70 >40(50) 60 >33(42) 50 >29(36) 43 >25(31) 38 >22(28) 33 >20(25) 30
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 6 (6000000)│>83(92) 100 >75(83) 92 >67(75) 83 >58(67) 75 >50(58) 67 >42(50) 58 >36(43) 50 >31(38) 44 >28(33) 39 >25(30) 35
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 7 (7000000)│>86(93) 100 >79(86) 93 >71(79) 86 >64(71) 79 >57(64) 71 >50(57) 64 >43(50) 57 >38(44) 50 >33(39) 44 >30(35) 40
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 8 (8000000)│>88(94) 100 >81(87) 94 >75(81) 87 >69(75) 81 >63(69) 75 >56(62) 69 >50(56) 62 >44(50) 56 >39(44) 50 >35(40) 45
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
 9 (9000000)│>89(94) 100 >83(89) 94 >78(83) 89 >72(78) 83 >67(72) 78 >61(67) 72 >55(61) 67 >50(56) 61 >44(50) 56 >40(45) 50
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
10(10000000)│>90(95) 100 >85(90) 95 >80(85) 90 >75(80) 85 >70(75) 80 >65(70) 75 >60(65) 70 >55(60) 65 >50(55) 60 >45(50) 55
└────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┘

หากดูที่ A = 2 และ B = 3 (และการทดสอบ 1 ล้านครั้ง):

  • แรนด์ (2) มีขนาดใหญ่กว่าแรนด์ (3) ใน 17% ของคดี
  • แรนด์ (2000000) มีขนาดใหญ่กว่าแรนด์ (3000000) ใน 33% ของกรณี (สังเกตมาตราส่วน ./ .. การปัดเศษจำนวนเต็ม)
  • แรนด์ (2) มีขนาดใหญ่กว่าหรือเท่ากับแรนด์ (3) ใน 50% ของคดี
  • (rand (2000000) ก็ใหญ่กว่าหรือเท่ากับ rand (3000000) ใน 50% ของคดี)

ความประหลาดใจอาจเป็นไปได้ว่า:

  • แรนด์ (2)> แรนด์ (3) เพียง 17% ของคดี
  • แรนด์ (10)> แรนด์ (10) ใน 45% ของกรณี
  • แรนด์ (6)> แรนด์ (5) ทุก ๆ ครั้ง

ในความเป็นจริงฉันอาจจะแก้คำถามนี้แตกต่างกันเพียงแค่พิมพ์ตารางขนาด 10x10 ด้วยอัตราร้อยละที่ดีและต้องการ จากนั้นถ้าต้องการการประมาณค่าระหว่างสองค่าเพื่อให้ได้เปอร์เซ็นต์ที่แน่นอนบอกว่ามันเป็นเหตุผลบางอย่าง 53 จากนั้นมันง่ายที่จะสร้างการโจมตีที่น่าจะเป็น 53%, 0 หรือ 1 เพียงแค่รัน rand (100) และการทดสอบ ถ้ามันเล็กกว่าหรือเท่ากับ 53 :-)

นั่นคือตามแนวที่Jack Aidleyกล่าวถึง


1
คุณใช้ตัวสร้างตัวเลขสุ่มซึ่งสร้างจำนวนเต็มหรือไม่ คำตอบของฉันใช้ RNG ซึ่งจะสร้างความแม่นยำสองหมายเลขจุดลอยระหว่างและ0.0 1.0ในกรณีนั้นความแตกต่างระหว่าง>และ>=ไม่มีความสำคัญ คุณอาจต้องการชี้ให้เห็นว่า
Philipp

ใช่นั่นเป็นส่วนหนึ่งของข้อความที่ตั้งใจจะชี้ให้เห็นถึงพฤติกรรมที่แตกต่างกันของช่องว่างตัวเลขเช่น ค่าจำนวนเต็มขนาดเล็ก (granularity แบบหยาบ) กับจำนวนเต็มค่าขนาดใหญ่ (และแน่นอนว่าแบบลอย) ด้วยความละเอียดระดับละเอียด ฉันจะแทรก "จำนวนเต็ม" บางแห่งขอบคุณสำหรับการหาตำแหน่ง จริง ๆ แล้วฉันชี้ให้เห็นว่าการละเลย: "(ในกรณีนี้มันไม่เกี่ยวข้องไม่ว่าจะเป็น> หรือ≥เมื่อพวกเขาอยู่ใกล้") บ่อยครั้งที่ตัวเลขพบค่าที่น่าประหลาดใจ (สำหรับจิตใจของ hman) หากระบบไม่ได้รับการสนับสนุนให้แสวงหาความสมดุล โดยทั่วไปการพูด ofc ไม่จำเป็นต้องในกรณีนี้
Stormwind

0

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

ตัวอย่างเช่นหากผู้เล่นสองคนปฏิบัติตามขั้นตอน:

  • กลิ้งตาย 14 ด้าน
  • เพิ่มโมดิฟายเออร์ของพวกเขาเข้ากับม้วนกระดาษ

และทำซ้ำจนกว่าฝ่ายใดฝ่ายหนึ่งจะเต้นฝ่ายตรงข้ามจากนั้นคุณจะได้ตัวเลขในช่วงของคุณ: นี่คืออัตราต่อรองแห่งชัยชนะที่มีข้อได้เปรียบเชิงตัวเลขที่กำหนดสำหรับตัวดัดแปลง

0   50%
1   57%
2   64%
3   70%
4   76%
5   81%
6   85%
7   89%
8   92%
9   95%
10  97%

0

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

ทั้งสองวิธีนี่คือสองสิ่งที่อาจทำให้คุณรู้สึกดี

ชนะกรณีที่มีความได้เปรียบ:

ถ้าผ่านการตรวจสอบบาร์ / ทักษะคือม้วน 10 A ม้วน 40 B ม้วน 42 ถ้ามีเพียงอันเดียวที่จะชนะ เริ่มต้นจากการชนะเท่ากับ A 50% / B การชนะ 50% คุณสามารถเพิ่ม% เพื่อลุ้นโอกาสตามจำนวนความได้เปรียบ Roll B มีข้อได้เปรียบ (42-40) / 40 = 5% ในแง่ของการม้วน การเพิ่มมันเข้าไปโดยตรงทำให้โอกาสในการชนะของ B เท่ากับ 55% หรือคุณสามารถกำหนดโอกาสชนะที่กำหนดเองต่อเปอร์เซ็นต์ความได้เปรียบ พูดเพื่อรับประโยชน์ทุก ๆ 100% ที่คุณเพิ่มโอกาส 10% ที่จะชนะ ดังนั้นถ้า A ม้วน 10 และ B ม้วน 20 แล้ว A ชนะ 40% และ B ชนะ 60% ของคดี

แนวคิดแบบแผนยุติธรรม:

ทำโอกาส 30% แบบมาตรฐานในการชนะคุณอาจจบลงด้วยการชนะ 38 Check out จาก 100

บางคนต้องการขั้นตอนพิเศษในความเป็นธรรมและตรวจสอบให้แน่ใจว่าโอกาส 30% ชนะเสมอ 30 จาก 100 การเผชิญหน้าและพอเพียงกับการสุ่มโดยไม่รู้ว่าการเผชิญหน้าในลำดับนั้นเป็นชัยชนะและเป็นการสูญเสีย

สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับเศรษฐกิจเกมที่มีการคำนวณดี เพราะสถิติสุ่มของโอกาส 70% ที่จะชนะ บอกโอกาส 70% ที่ม็อบจะลดลง 5 gold กลุ่มคนร้ายอาจวางทองคำลง 81 ครั้งจากทั้งหมด 100 ครั้งซึ่งจะทำให้รายรับ / รายจ่ายไหลออกจากยอดเงินคงเหลือ และขึ้นอยู่กับจำนวนหน่วยงาน / อินสแตนซ์ที่ใช้อัตราเงินเฟ้อม้วนและ / หรือการขาดแคลนจะถูกสร้างขึ้นอย่างหลีกเลี่ยงไม่ แน่นอนว่าคนจำนวนมากไม่ได้ประเมินคร่าว ๆ เกี่ยวกับข้อมูลเต็มรูปแบบ / ค่าใช้จ่ายทางเศรษฐกิจของพวกเขา ผู้คนจำนวนมากพอเพียงกับการทำคะแนนเศรษฐกิจ "มากที่สุด" และปล่อยตัวแปรสร้างบางตัวที่ไม่ได้คำนวณและสแตกความคลาดเคลื่อนของค่าล่วงเวลาแม้ด้วยการสุ่มแบบยุติธรรม

อัตราเงินเฟ้อและการขาดแคลนไม่ได้เป็นปัญหาด้วยตัวเอง คุณสามารถจัดการแบบแผนที่ไม่ยุติธรรมและตัวแปรที่คาดไม่ถึงหากเศรษฐกิจของคุณมีการตั้งค่าให้ตอบสนองต่อภาวะเงินเฟ้อและปัญหาการขาดแคลนอย่างเพียงพอ

ทำไมต้องกังวลกับเรื่องนี้เพราะกฎหมายจำนวนมากทำให้สิ่งต่าง ๆ ออกมาในระยะยาว?

ไม่ใช่ทุกสภาพแวดล้อมที่สามารถรักษาพฤติกรรมการออกแบบของมันในขณะที่คาดหวังในสิ่งที่จะออกมาในภายหลัง ...


ฉันชอบโดยเฉพาะประโยคสุดท้าย คว้ามาจากที่อื่น: ฉันเชื่อว่าตัวอย่างของ Viking Lotto ใน: out ratio คือ ca 4: 1 ในระยะยาว (ที่หนึ่งสามารถแทนที่ "ยาว" ด้วย "ใหญ่"); มันมีพฤติกรรมการออกแบบที่เกือบจะเป็นที่ถกเถียงกัน (แต่นิยามไว้อย่างดี) และมันทำหน้าที่ ไม่มีใครสามารถรันคณิตศาสตร์ภายใต้เว้นแต่ว่าพฤติกรรมการออกแบบจะได้รับการกำหนดอย่างแม่นยำก่อน ตัวเลขมีแนวโน้มที่จะไม่สามารถควบคุมได้โดยไม่มีการควบคุม ...
Stormwind

@ พายุแน่นอน หากการออกแบบ / ทฤษฎีขาด - คณิตศาสตร์นั้นไร้ประโยชน์ มันเป็น แต่เครื่องมือ ฉันเคยเห็นนักออกแบบที่มีระดับคณิตศาสตร์ดีขึ้นเป็นลำดับที่ 5 ทำให้เศรษฐกิจดี พวกเขาแมปสิ่งที่พวกเขาต้องการทำอย่างมีเหตุมีผลและไปที่กลุ่มคณิตศาสตร์ (โดยปกติคือผู้เขียนโค๊ด) สำหรับเครื่องมือ / คำแนะนำวิธีทำบิตคณิตศาสตร์ มันก็ยังคงจัดการไม่ให้ชัดเจนสำหรับทุกคน - ยิ่งคุณมีปัญหากับพิมพ์เขียว - ยิ่งปวดศีรษะคุณจะเห็นในการก่อสร้าง เพียงแค่คว้าบางระบบและปรับแต่งมันหายไปจากจุดทั้งหมด หากคุณเพิ่งตัดสินใจว่าอะไรจะได้ผลก่อนสิ่งนี้จะไม่สร้างสรรค์จริงๆ
helena4
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.