Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Phần thưởng khối sau Halving

    Trong nhiều đồng tiền mã hóa (ví dụ Bitcoin), phần thưởng khối (block reward) bị giảm một nửa (halving) sau mỗi HHH khối. Cho phần thưởng ban đầu RRR, chu kỳ halving HHH (số khối), và độ cao khối hhh (block height, đánh số từ 0), phần thưởng tại khối hhh được tính:

    reward(h)=R2⌊h/H⌋\text{reward}(h) = \dfrac{R}{2^{\lfloor h/H \rfloor}}reward(h)=2⌊h/H⌋R​

    Quy ước: nếu số lần halving ⌊h/H⌋≥64\lfloor h/H \rfloor \ge 64⌊h/H⌋≥64 thì phần thưởng được coi là bằng 0 (tránh số quá nhỏ, tương tự cách Bitcoin xử lý khi phần thưởng dưới 1 satoshi).

    Ví dụ: R=50R=50R=50, H=210000H=210000H=210000, h=210000h=210000h=210000 (đúng 1 lần halving) ⇒\Rightarrow⇒ phần thưởng =25=25=25.

    • Định dạng đầu vào:

      Một dòng duy nhất gồm 3 giá trị cách nhau bởi khoảng trắng: R H h

      • R: số thực không âm (tối đa 8 chữ số thập phân).
      • H: số nguyên dương — chu kỳ halving tính bằng số khối.
      • h: số nguyên không âm — độ cao khối cần tính phần thưởng.
    • Định dạng đầu ra:

      Một dòng: giá trị phần thưởng tại khối hhh, in với đúng 8 chữ số thập phân (theo định dạng %.8f của Python).

    Ví dụ:

    Đầu vào:

    50 210000 0
    

    Đầu ra:

    50.00000000
    

    Đầu vào:

    50 210000 210000
    

    Đầu ra:

    25.00000000
    

    Đang tải editor...