trang chủ / bài tập / pinkslip

Rút thăm giấy tờ xe

Đề bài

Mô tả

Trong một trò chơi đua xe, sau mỗi lần thắng một cuộc đua, bạn được rút ngẫu nhiên 1 trong x lá thăm hợp lệ. Ban đầu x=3 gồm ba lá: Tiền mặt (C), Thẻ miễn phạt (M) và Giấy tờ xe (P), với xác suất rút được lần lượt là c, m, p. Ngoài ra có một hệ số biến động v.

Bạn chơi các cuộc đua liên tiếp (luôn thắng), mỗi cuộc đua rút một lá thăm. Giả sử lá vừa rút có xác suất trước khi rút là a:

  • Nếu đó là Giấy tờ xe (P): trò chơi kết thúc, bạn không đua nữa.
  • Ngược lại:
    • Nếu av: xác suất của lá vừa rút trở thành 0 và lá đó bị loại khỏi các lần rút sau (x giảm đi 1). Lượng xác suất a được chia đều cho các lá còn hợp lệ.
    • Nếu a>v: xác suất của lá vừa rút giảm đi v, lượng v này được chia đều cho các lá hợp lệ còn lại.

Ví dụ:

  • Nếu (c,m,p)=(0.2,0.1,0.7)v=0.1, sau khi rút C, xác suất mới là (0.1,0.15,0.75).
  • Nếu (c,m,p)=(0.1,0.2,0.7)v=0.2, sau khi rút C, xác suất mới là (loại,0.25,0.75).
  • Nếu (c,m,p)=(0.2,loại,0.8)v=0.1, sau khi rút C, xác suất mới là (0.1,loại,0.9).
  • Nếu (c,m,p)=(0.1,loại,0.9)v=0.2, sau khi rút C, xác suất mới là (loại,loại,1.0).

Hãy tính kỳ vọng số cuộc đua phải chơi cho đến khi rút được Giấy tờ xe.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t (1t10): số test case.
  • Mỗi test case gồm một dòng chứa bốn số thực c, m, p, v.

Dữ liệu ra

Với mỗi test case, in một dòng chứa một số thực: kỳ vọng số cuộc đua phải chơi. Kết quả được chấp nhận nếu sai số tuyệt đối hoặc tương đối không vượt quá 106.

Ràng buộc

  • 0<c,m,p<1, c+m+p=1
  • 0.1v0.9
  • Mỗi số c, m, p, v có tối đa 4 chữ số sau dấu phẩy thập phân.

Ví dụ

Input Output Giải thích
4
0.2 0.2 0.6 0.2
0.4 0.2 0.4 0.8
0.4998 0.4998 0.0004 0.1666
0.3125 0.6561 0.0314 0.2048
1.532000000000
1.860000000000
5.005050776521
4.260163673896
Test 1: các chuỗi rút có thể là P (xs 0.6, 1 đua), CP (xs 0.2·0.7=0.14, 2 đua), CMP (xs 0.2·0.1·0.8=0.016, 3 đua), CMMP (xs 0.2·0.1·0.1·1=0.002, 4 đua), MP, MCP, MCCP tương tự đối xứng. Kỳ vọng =1.532.
2
0.4998 0.4998 0.0004 0.1000
0.1000 0.8999 0.0001 0.1000
6.282626530714
6.155797692324
Trường hợp p rất nhỏ và v nhỏ nhất: chuỗi rút kéo dài, kỳ vọng lớn.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0