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] Tổ hợp modulo số nguyên tố

    Hệ số tổ hợp (nk) mod p\binom{n}{k}\bmod p(kn​)modp

    Nhiều giao thức mật mã dùng hệ số tổ hợp modulo một số nguyên tố. Vì phép chia không tồn tại trực tiếp trong số học modular, ta dùng nghịch đảo Fermat cho mẫu số:

    (nk)=n!k! (n−k)! mod p\binom{n}{k} = \frac{n!}{k!\,(n-k)!} \bmod p(kn​)=k!(n−k)!n!​modp

    Cho nnn, kkk, ppp (với ppp nguyên tố, n<pn<pn<p). In (nk) mod p\binom{n}{k}\bmod p(kn​)modp. Nếu k<0k<0k<0 hoặc k>nk>nk>n thì kết quả là 000.

    Ví dụ

    (52)=10\binom{5}{2}=10(25​)=10, và 10 mod 1000000007=1010\bmod 1000000007 = 1010mod1000000007=10.

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

      Một dòng gồm ba số nguyên nnn, kkk, ppp.

    • Ràng buộc đầu vào:

      0≤k≤n<p<1090 \le k \le n < p < 10^{9}0≤k≤n<p<109, ppp nguyên tố.

    • Định dạng đầu ra:

      Một số nguyên là (nk) mod p\binom{n}{k}\bmod p(kn​)modp.

    Ví dụ:

    Đầu vào:

    5 2 1000000007
    

    Đầu ra:

    10

    Giải thích:

    C(5,2)=10; 10 mod (10^9+7)=10.

    Đang tải editor...