ผลรวมของ 100 ทอยลูกเต๋าสองด้านทั้งหก


14

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

ตัวอย่างผลลัพธ์: [3, 3, 9, 11, 15, 15, 11, 15, 7, 8, 3]

จำนวนครั้งที่ผลรวมสะสมจะถูกแสดงในดัชนีผลรวม - 2

ในตัวอย่างนี้ผลรวมของสองถูกหมุน 3 ครั้ง ([2-2]), ผลรวมของสาม 3 ครั้ง ([3-2]), ผลรวมของสี่ 9 ครั้ง ([4-2]) และอื่น ๆ บน. มันไม่สำคัญว่าแต่ละลูกเต๋ากลิ้งไปถึงยอดรวม (5 และ 2 จะนับเป็นผลรวมเดียวกันกับ 6 และ 1)

เอาต์พุต "Ugly" นั้นใช้ได้ (โหลดศูนย์ต่อท้ายเอาต์พุตพิเศษวิธีการแสดงข้อมูลแปลก ๆ ) ตราบใดที่คุณอธิบายว่าควรอ่านข้อมูลอย่างไร


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

1
หากยอดรวมไม่เคยเกิดขึ้นจำเป็นต้องมี0ในรายการหรือไม่หรือไม่
Greg Martin

1
ค่าต่าง ๆ จะต้องสามารถระบุได้อย่างสม่ำเสมอหรือไม่
Jonathan Allan

1
หากผลลัพธ์เป็นเพียงจำนวนครั้งที่การรวมกันของคู่เกิดขึ้นทำไมเราต้องรวมมูลค่าของแต่ละม้วน เราควรจะทำอย่างไรกับผลรวมนั้น? คุณหมายถึงอะไร "น่าเกลียด"
Shaggy

1
extra outputแต่เรายังไม่สามารถส่งออกรายการสุ่มตัวเลขที่ไม่มีที่สิ้นสุดและบอกว่ามันสุ่มปรากฏที่ไหนสักแห่งในนั้นใช่ไหม นั่นเป็นช่องโหว่มาตรฐานของ iirc
สตีเฟ่น

คำตอบ:


5

เยลลี่ , 13 12 ไบต์

³Ḥ6ẋX€+2/ṢŒr

ลิงก์ niladic [value, count]รูปแบบออกเป็นรายชื่อของรายการของ

(ศูนย์ม้วนหมายถึงไม่มีรายการดังกล่าวอยู่ในผลลัพธ์ - เช่นผลลัพธ์ของ[[6, 12], [7, 74], [8, 14]]จะระบุว่ามีเพียงผลรวมของหก, เจ็ดและแปดเท่านั้น)

ลองออนไลน์!

อย่างไร?

³Ḥ6ẋX€+2/ṢŒr - Main link: no arguments
³            - 100
 Ḥ           - double = 200
  6          - 6
   ẋ         - repeat -> [6,6,6...,6], length 200
    X€       - random integer from [1,z] for €ach (where z=6 every time)
       2/    - pairwise reduce with:
      +      -   addition (i.e. add up each two)
         Ṣ   - sort
          Œr - run-length encode (list of [value, length] for each run of equal values)


3

05AB1E , 21 19 ไบต์

-2 ไบต์ขอบคุณ @Emigna

TÝÌтF6Lã.RO¸ì}{γ€g<

ลองออนไลน์!

TÝÌтF6Lã.RO¸ì}{γ€g<
TÝÌ                   Range from 2 to 12
   тF                 100 times do:
     6L                 Range from 1 to 6
       ã                Cartesian product (creates all possible pairs of 1 and 6)
        .RO             Choose random pair and sum
           ¸ì           Prepend result to initial list
             }        end loop
              {γ€g<   Sort, split on consecutive elements, count and decrement

TÝÌтF6Lã.RO¸ì}{γ€g<บันทึก 2 ไบต์
Emigna

@Emigna ไม่ได้คาดหวังว่าการวนซ้ำจะสั้นลงขอบคุณ!
kalsowerus

2

Mathematica ขนาด 50 ไบต์

r:=RandomInteger@5
Last/@Tally@Sort@Table[r+r,100]

การใช้งานที่ไม่ซับซ้อน หากไม่เคยได้รับผลรวมใด ๆ0จะถูกตัดออกจากรายการ


2

MATL , 17 ไบต์

6H100I$Yrs!11:Q=s

เอาต์พุตเป็นรายการของตัวเลข 11 ตัว (บางอันอาจเป็น 0) คั่นด้วยช่องว่างเพื่อระบุจำนวนครั้งสำหรับแต่ละคู่ตั้งแต่ 2 ถึง 12

ลองออนไลน์!

6:gtY+36/100*สำหรับการเปรียบเทียบจำนวนเฉลี่ยทฤษฎีครั้งในแต่ละคู่จะปรากฏขึ้นโดยเฉลี่ยจะคำนวณได้

หากจำนวนม้วนเพิ่มขึ้นค่าที่ได้รับจะเข้าใกล้ค่าที่กำหนด ดูตัวอย่างค่าที่ได้รับและทฤษฎีด้วย 10,000 ม้วน


2

CJam, 18 20 ไบต์

100{;6mr6mr+))}%$e``

ลองออนไลน์!


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

@ Jonathanathan Allan เอาล่ะก็ดี e` ใช้เวลาเพียงสองไบต์
แยกผลไม้

2

Perl 6 , 30 ไบต์

bag [Z+] (^6).pick xx 100 xx 2

(^6).pickเป็นตัวเลขสุ่มจากศูนย์ถึงห้า xx 100ทำรายการร้อยองค์ประกอบของตัวเลขดังกล่าว xx 2สร้างสองรายการดังกล่าว [Z+]รหัสไปรษณีย์ทั้งสองรายการด้วยการเพิ่มผลิตรายการร้อยองค์ประกอบของสองม้วนตาย ในที่สุดbagใส่รายการนั้นลงในถุงซึ่งเป็นชุดที่มีหลายหลาก ตัวอย่างเอาต์พุต REPL:

bag(1(4), 9(4), 0(4), 4(14), 5(18), 3(9), 10(2), 6(19), 7(13), 2(3), 8(10))

นั่นหมายถึง 1, 9 และ 0 เกิดขึ้นสี่ครั้งแต่ละครั้งสี่เกิดขึ้นสิบสี่ครั้ง ฯลฯ เนื่องจาก "ลูกเต๋า" ในรหัสนี้สร้างตัวเลขตั้งแต่ 0-5 ให้เพิ่มสองเข้าไปในแต่ละตัวเลขเหล่านี้เพื่อรับม้วนคู่ มาตรฐาน 1-6 ลูกเต๋าจะผลิต


ว้าว. Perl 6 เป็นพลังที่ต้องคำนึงถึง
จา

อย่างไรก็ตาม "หากยอดรวมไม่เคยรีดคุณต้องรวมศูนย์หรือวิธีใดวิธีหนึ่งในการระบุว่ายอดรวมนั้นไม่เคยถูกย้อนกลับ" ดูไม่เหมือนถุงโซลูชันตรงตามนั้น
จา

หากไม่มีการหมุนหมายเลขเฉพาะสถานการณ์นั้นสามารถระบุได้โดยไม่มีหมายเลขในกระเป๋า
ฌอน

2

R , 45 37 ไบต์

-7 ไบต์ขอบคุณ Jarko Dubbledam

s=sample;table(s(6,100,T)+s(6,100,T))

ส่งคืนวัตถุตารางขององค์ประกอบและการนับของแต่ละคน ไม่รวมค่าใด ๆ ที่ไม่ได้เกิดขึ้น

ลองออนไลน์!

เวอร์ชั่นเก่า:

rle(sort(colSums(matrix(sample(6,200,T),2))))

sample(6,200,T)ตัวอย่าง 200 เท่าจากการ1:6แทนที่อย่างสม่ำเสมอจากนั้นจะสร้างเมทริกซ์ที่มี 2 แถวผลรวมของคอลัมน์จากนั้นเรียงลำดับพวกเขาตามลำดับจากน้อยไปหามากและคำนวณความยาวของการวิ่ง ละเว้นจำนวนลูกเต๋าที่ไม่ได้รับ

ส่งคืนrleวัตถุซึ่งพิมพ์ตามค่าเริ่มต้นในรูปแบบต่อไปนี้:

Run Length Encoding
  lengths: int [1:11] 5 6 8 12 12 20 12 11 4 7 ...
  values : num [1:11] 2 3 4 5 6 7 8 9 10 11 ...

ที่lengthsมีจำนวนและที่valuesเป็นผลรวมของลูกเต๋า

ลิงก์ TIO


1

PHP, 53 ไบต์

พิมพ์อาร์เรย์เชื่อมโยง key คือผลลัพธ์ของสอง dices และ value คือการนับผลลัพธ์เหล่านี้

for(;$i++<100;)$r[rand(1,6)+rand(1,6)]++;print_r($r);

ลองออนไลน์!


If a sum was never rolled, you must include a zero or some way to identify that that particular sum was never rolled.
ติตัส

1

JavaScript (ES6), 72 ไบต์

เมื่อเห็นว่าอนุญาตให้ใช้เอาต์พุต "น่าเกลียด" ต่อไปนี้จะส่งออกอาร์เรย์ที่มีจำนวนครั้งที่คะแนนตั้งแต่ 2-12 แต่ละม้วนซึ่งมีองค์ประกอบเพิ่มเติม 89 ชุดที่ 0

_=>(a=Array(100).fill(0)).map(_=>a[g()+g()]++,g=_=>Math.random()*6|0)&&a

f=
_=>(a=Array(100).fill(0)).map(_=>a[g()+g()]++,g=_=>Math.random()*6|0)&&a
o.innerText=f()
<pre id=o>


คุณไม่ได้สูญเสียไบต์เพื่อสร้างองค์ประกอบ 100 ชิ้นแทนที่จะเป็น 99 หรือ 20 หรือเพียงแค่ 12 ชิ้นเท่านั้น?
Rohan Jhunjhunwala

@RohanJhunjhunwala ความท้าทายเรียกร้องให้ 100 ลูกเต๋าสองลูกเต๋า
Shaggy

โอ้ฉันคิดว่าเพิ่งเริ่มต้นอาร์เรย์องค์ประกอบ 100 รายการเพื่อเก็บม้วน
Rohan Jhunjhunwala

1

ไซโลขนาด 99 ไบต์

i=100
lbla
x=rand*6+rand*6
a=get x
a+1
set x a
i-1
if i a
lblb
c=get b
printInt c
b+1
d=11-b
if d b

ลองออนไลน์!

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

เป็นที่น่าสังเกตว่าการแก้ไขเล็กน้อยสามารถทำได้เพื่อแสดงฮิสโตแกรมของม้วนกระดาษ enter image description here

แต่น่าเสียดายที่จะต้องมีการเรียกใช้จากล่ามออฟไลน์

i=4000
lbla
x=rand*6+rand*6
a=get x
a+1
set x a
i-1
if i a
canvas 1100 1000 Output
lblb
c=get b
printInt c
d=c*1
y=1000-d
x=b*100
newObj 0 100 d
moveObj b x y
b+1
d=11-b
if d b
wait 10000

1

Elixir, 157 118 bytes

l=&Enum.random(1..&1)
p=fn(o,s)->y=l.(6)+l.(6)
s=List.update_at(s,y,&(&1+1))
if Enum.sum(s)<100 do s=o.(o,s) end
s end

ลองสิ่งที่ยากกว่าเจลลี่

คำอธิบาย:

  1. กำหนดฟังก์ชั่นที่ส่งกลับตัวเลขสุ่มระหว่าง 1 ถึง 6 ที่ครอบคลุม
  2. กำหนดฟังก์ชั่นโดยไม่ระบุชื่อและปล่อยให้yเป็นตัวแปรด้วยผลรวมการหมุน
  3. อัปเดตสถานที่ที่เหมาะสมในรายการโดยเพิ่ม 1
  4. ถ้าเรามี 100 ม้วนออกไป อื่นโทรหาตัวเองอีกครั้งผ่านตัวคุณเองและรายการที่อัปเดต
  5. ส่งคืนอาร์เรย์ที่อัปเดต

p.(p,[0,0,0,0,0,0,0,0,0,0,0,0,0])ควรจะเรียกว่าเหมือน มันจะเพิ่มการเตือน แต่มันจะกลับอาร์เรย์ที่ต้องการด้วย 13 องค์ประกอบที่ 2 แรกควรละเว้น


1

Java 8, 104 ไบต์

แลมบ์ดาคืนค่าint[]ความถี่ Supplier<int[]>มอบหมายให้

()->{int o[]=new int[11],i=0;while(i++<100)o[(int)(Math.random()*6)+(int)(Math.random()*6)]++;return o;}

ลองออนไลน์

แลมบ์ดา

() -> {
    int
        o[] = new int[11],
        i = 0
    ;
    while (i++ < 100)
        o[(int) (Math.random() * 6) + (int) (Math.random() * 6)]++;
    return o;
}

1

q / kdb +, 31 28 25 ไบต์

วิธีการแก้:

sum!:[11]=/:sum(2#100)?'6

ตัวอย่าง:

q)sum!:[11]=/:sum(2#100)?'6
1 3 5 11 16 21 16 9 8 9 1i

คำอธิบาย:

กลิ้งลูกเต๋า100?6หมุนลูกเต๋าอีกครั้งและเพิ่มเวกเตอร์เข้าด้วยกัน จากนั้นดูที่แต่ละผลลัพธ์ตรงกับช่วง 0..10 จากนั้นสรุปความจริงทั้งหมดในแต่ละรายการ:

sum til[11]=/:sum(2#100)?'6 / ungolfed solution
                 (2#100)    / 2 take 100, gives list (100;100)
                        ?'6 / performs rand on each left-each right, so 100 & 6, 100 & 6
              sum           / add the lists together
    til[11]                 / the range 0..10
           =/:              / apply 'equals?' to each right on left list
sum                         / sum up the results, e.g. how many 1s, 2s, 3s.. 12s

หมายเหตุ:

'กอล์ฟ' ส่วนใหญ่จะสลับqคำหลักสำหรับkเทียบเท่าคือและeachtil


0

QBICขนาด 45 ไบต์

[100|h=_r1,6|+_r1,6|-2┘g(h)=g(h)+1][0,z|?g(b)

คำอธิบาย:

[100|         FOR a = 1 to 100
h=_r1,6|       set h to a random value between 1-6
 +_r1,6|       + another rnd(1,6) (2, 3 ... 11, 12)
 -2            - 2 (index: 0 ... 10
┘             Syntactic linebreak
g(h)          When using array parenthesis on an undefined array,
              it is interpreted as an array with 10 indexes of all zeroes.           
    =         Of array g, set the value of index h (0 ... 11)
      g(h)+1  to one higher (all indices start out as 0)
              Note that we need to track 11 values. Fortunately, QBasic'set
              empty, 10-sized array has 11 indices, because of base 0 / base 1 ambiguity.
]             NEXT set of dice
[0,z|         FOR b = 0 to 10
?g(b)           PRINT the tracker array

0

APL, 14 ไบต์

,∘≢⌸+/?100 2⍴6

แสดงข้อมูลเป็นตารางที่มีคอลัมน์ด้านซ้ายแสดงถึงผลรวมและด้านขวาแสดงถึงจำนวนที่เกิดขึ้น

อธิบาย

        100 2⍴6  ⍝ create an 2×100 array of 6
       ?         ⍝ roll for each cell from 1 to 6
     +/          ⍝ sum every row
   ⌸            ⍝ for every unique sum
,∘≢              ⍝ get the sum and the number of indexes

โพสต์ก่อนหน้า:

APL, 36 31 ไบต์

บันทึก 5 ไบต์ด้วย @ Adám

(11⍴⍉⌽f)[⍋11⍴⍉f←,∘≢⌸+/?100 2⍴6]

คำอธิบาย

f←,∘≢⌸+/?100 2⍴6
          100 2⍴6    ⍝ create an 2×100 array of 6
         ?           ⍝ roll for each cell from 1 to 6
       +/            ⍝ sum every row
     ⌸              ⍝ for every unique sum
  ,∘≢                ⍝ get the sum and the number of indexes

(11⍴⍉⌽f)[⍋11⍴⍉f]  ⍝ ⍋x returns the indexes of the sorted x in the current x  
                     ⍝ x[y] find the yth elements of x
                     ⍝ x[⍋y] reorders x the same way that would be required to sort y

            11⍴⍉f   ⍝ the column of sums - see below
 11⍴⍉⌽f            ⍝ the column of counts - see below

มัน11⍴⍉⌽fทำงานยัง ไง?

⍝ ⌽ - Reverses the array
⍝ ⍉ - Transposes the array

  ⍝   f
 9 14   ⍝ Sum - Occurences
 4  9
 7 17
 8 18
 6 15
 5  7
10  3
11  5
 3  6
 2  2
12  4

  ⍝   ⍉f
 9 4  7  8  6 5 10 11 3 2 12  ⍝ Sum
14 9 17 18 15 7  3  5 6 2  4  ⍝ Occurences

  ⍝   ⍉⌽f
14 9 17 18 15 7  3  5 6 2  4  ⍝ Occurences
 9 4  7  8  6 5 10 11 3 2 12  ⍝ Sum

บันทึกไม่กี่ไบต์โดยการรวมงบและทำให้ตัวถูกดำเนินการโดยปริยาย:(11⍴⍉⌽f)[⍋11⍴⍉f←,∘⍴⌸+/?100 2⍴6]
อดัม

ขออภัยฉันแก้ไขข้อเสนอแนะของฉันในขณะที่คุณรวมไว้ สังเกตุว่าตัวถูกดำเนินการโดยปริยาย
2560

อย่างไรก็ตาม OP อนุญาตให้มีรูปแบบเอาต์พุตที่ไม่คลุมเครือดังนั้นจึง,∘⍴⌸+/?100 2⍴6ควรเพียงพอเนื่องจากมีรายการผลรวมที่เกิดขึ้น (ซึ่งบ่งบอกว่าไม่มีรายการใด) และความถี่ (ไม่จำเป็นต้องเรียงลำดับ)
2560

0

> <> , 93 ไบต์

00[0[v
v 1\v/4
v 2xxx5
v 3/^\6
>l2(?^+]laa*=?v0[
  /&1+&\ v1&0]<
=?/ :?!\}>:@@:@
oa&0n&}< ^+1

ลองออนไลน์หรือดูที่สนามเด็กเล่นปลา !

รูปแบบเอาท์พุทที่น่าเกลียดคือลำดับของตัวเลขคั่นด้วยการขึ้นบรรทัดใหม่โดยที่ตัวเลขที่nบอกจำนวนครั้งที่ผลรวมคือn - มันน่าเกลียดเพราะมันพิมพ์ตลอดไปสำหรับจำนวนเต็มบวกทั้งหมดnแม้ว่าบรรทัดส่วนใหญ่จะเป็น 0 ( ลิงก์ TIO ถูกแก้ไขเพื่อหยุดทำงานหลังจากn = 12 ที่ราคา 5 ไบต์)

สนามเด็กเล่นของปลาค่อนข้างช้า - ใช้เวลาประมาณสามนาทีครึ่งในการพิมพ์สูงถึงn = 12 ที่ความเร็วสูงสุด - ดังนั้นคุณอาจต้องการแก้ไขให้หมุนลูกเต๋า 10 คู่แทน 100 โดยเปลี่ยนaa*ในบรรทัดที่ 5 เป็นa  (นั่นคือ,aตามด้วยสองช่องว่าง)

การทอยลูกเต๋าแบบสุ่มทำได้โดยบิตนี้:

1\v/4
2xxx5
3/^\6

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

เมื่อปลาได้กลิ้งลูกเต๋า 100 คู่มันจะนับว่าผลรวมเป็นnด้วยบิตนี้ (ไม่ได้เปิดเพื่อความชัดเจนและเริ่มที่มุมบนซ้าย):

v       /&1+&\
>:@@:@=?/ :?!\}
^   +1oa&0n&}<

เราเก็บnไว้ที่ด้านหน้าของสแต็กและใช้รีจิสเตอร์เพื่อนับจำนวนครั้งที่nปรากฏ


0

จาวาสคริ 85 75 ตัวอักษร

ขอบคุณ Shaggy!

a=[]
for(i=100;i--;)a[o=(f=_=>Math.random()*6|0)()+f()]=(a[o‌​]|0)+1
alert(a)

ประวัติศาสตร์

85

a={}
f=_=>Math.random()*6
for(i=0;i++<100;)a[o=-~f()-~f()]=(a[o]||0)+1
console.log(a)

เก็บความหมายไว้เพื่อให้คุณประหยัดบางอย่างสำหรับสิ่งนี้; นี่เป็นแข็งแรงเล่นกอล์ฟอย่างรวดเร็วรุ่น 75 a=[];for(i=100;i--;)a[o=(f=_=>Math.random()*6|0)()+f()]=(a[o]|0)+1;alert(a)ไบต์ของการแก้ปัญหาของคุณ: (หมายเหตุ: ในกรณีนี้ IIFE จะไม่ประหยัดหรือไม่ต้องเสียค่าใช้จ่ายใด ๆ ของไบต์ แต่มีหลายครั้งที่มันสามารถช่วยคุณประหยัดค่าไบต์หรือ 2 ได้ดังนั้นจึงเป็นเรื่องง่ายที่จะมีไว้ใน "golfbag" ของคุณ)
Shaggy

โอ้เยี่ยมมากขอบคุณ เทคนิคที่มีประโยชน์ที่นั่น! ที่น่าสนใจนั่น|0คือคำตอบของ "Math.floor ()" และ "แปลงไม่ได้กำหนดเป็น 0"
Steve Bennett


0

PHP, 65 ไบต์

while($i++<100)${rand(1,6)+rand(1,6)}++;for(;++$k<13;)echo+$$k,_;

พิมพ์ใบนำหน้า0_และตามด้วย 2 ถึง 12 แล้วตามด้วยขีดล่างแต่ละอัน
ทำงานด้วย-nrหรือลองออนไลน์


0

K (oK) , 24 22 ไบต์

วิธีการแก้:

+/(!11)=/:+/(2#100)?'6

ลองออนไลน์!

คำอธิบาย:

k'พอร์ต' ของqโซลูชันของฉัน การประเมินเกิดขึ้นจากขวาไปซ้ายดังนั้นวงเล็บรอบ til ( !)

+/(!11)=/:+/(2#100)?'6 / the solution
            (2#100)    / the list (100;100)
                   ?'6 / take 6 from each left/each right (roll the dice twice)
           +/          / sum rolls together
  (!11)                / til, performs range of 0..n-1, thus 0..10
       =/:             / equals each right (bucket the sum of the rolls)
+/                     / sum up to get counts per result

การแก้ไข:

  • -2 ไบต์สลับซ้าย - ขวาสำหรับแต่ละคู่และสลับซ้าย + ซ้าย - ขวา

0

Pyth, 21 ไบต์

V100aY,O6O6)VTlfqsTNY

ส่งออกแต่ละขั้นตอนในการสร้างม้วนจากนั้นส่งออกความถี่ของแต่ละผลรวม 0 - 10 ในบรรทัดแยกต่างหาก


V100aY,O6O6)VTlfqsTNY Full program, no input, outputs to stdout
V100                  For N from 0 to 100
    a ,O6O6           Append a pair of random ints below 6
     Y                To a list Y, initialized to the empty list
           )          Then
            VT        For N from 0 to 10
              f     Y Print Y filtered to only include pairs
                q  N  For which N is equal to
                 sT   The sum of the pair

0

Java (OpenJDK 8) , 95 ไบต์

a->{int r[]=new int[11],i=0,d=0;for(;i++<200;)r[d+=Math.random()*6]+=i%2<1?1-(d=0):0;return r;}

ลองออนไลน์!

คำอธิบาย

a->{
  int r[] = new int[11],     // Rolls or result
      i   = 0,               // Iteration
      d   = 0;               // Dice accumulator
  for (;i++<200;)
    r[d+=Math.random()*6] += // Accumulate a new die and start an addition
     i % 2 < 1               // Accumulate up to two dice
       ? 1 - (d = 0)         // If we're at 2 dice, reset the accumulator and add 1
       : 0;                  // If we only have one die, add 0
  return r;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.