結果

問題 No.301 サイコロで確率問題 (1)
ユーザー titiatitia
提出日時 2022-11-03 01:06:16
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
AC  
実行時間 62 ms / 1,000 ms
コード長 19,942 bytes
コンパイル時間 148 ms
コンパイル使用メモリ 13,568 KB
実行使用メモリ 11,776 KB
最終ジャッジ日時 2024-07-17 12:40:12
合計ジャッジ時間 861 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 62 ms
11,776 KB
testcase_01 AC 60 ms
11,776 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
input = sys.stdin.readline

def solve(x):
    OK=0
    NG=1<<60

    while NG>OK+10**(-13):
        mid=(OK+NG)/2

        DP=[0]*x

        for i in range(x-1,-1,-1):
            score=6
            
            for j in range(1,7):
                if i+j==x:
                    score+=0
                elif i+j>x:
                    score+=mid
                else:
                    score+=DP[i+j]

            if i!=0:
                DP[i]=score/6
            else:
                if score/6>mid:
                    OK=mid
                else:
                    NG=mid

    return OK

ANS=[0, 5.999999999999943, 5.999999999999943, 5.999999999999943, 5.999999999999943, 5.999999999999943, 5.999999999999943, 9.94314932458127, 10.351707214159546, 10.854714237226801, 11.489202567069015, 12.31447473149285, 13.431807062589314, 15.029569384604713, 15.787804576056317, 16.636758444529846, 17.57793281667665, 18.601876299228593, 19.678420488380482, 20.741892080344883, 21.67275327051823, 22.645249282849875, 23.64726074307862, 24.663472996803876, 25.67764413071285, 26.67746871641907, 27.663148638280006, 28.66103170474554, 29.664477440702797, 30.66819883794909, 31.669210209817777, 32.667421919772494, 33.665308847528934, 34.66576002113658, 35.66674070015523, 36.66720695592585, 37.66700391593946, 38.666554953140746, 39.66637950093474, 40.66659505333371, 41.666762332170606, 42.66676664509697, 43.666679251331345, 44.6666150852285, 45.66662692159724, 46.66667543581298, 47.66669113898331, 48.66667728007167, 49.666659942368824, 50.66665620832191, 51.66666413629025, 52.66667128948626, 53.66667049477377, 54.6666665487964, 55.66666450299442, 56.66666537022758, 57.66666710817714, 58.66666767059877, 59.66666698728574, 60.666666326454674, 61.66666628465259, 62.66666661893578, 63.666666852762546, 64.66666680502613, 65.66666664355085, 66.66666657954067, 67.66666662658866, 68.66666669004718, 69.66666670322286, 70.66666667555927, 71.66666665164587, 72.6666666531388, 73.66666666669306, 74.66666667406878, 75.66666667113401, 76.66666666524861, 77.66666666335999, 78.66666666550299, 79.66666666776223, 80.66666666795732, 81.6666666668433, 82.66666666606187, 83.66666666620989, 84.66666666672751, 85.66666666694994, 86.66666666680271, 87.66666666659336, 88.66666666654828, 89.66666666663627, 90.66666666671324, 91.66666666671057, 92.66666666666754, 93.66666666664304, 94.66666666665202, 95.66666666667078, 96.66666666667703, 97.66666666667044, 98.66666666666316, 99.66666666666248, 100.66666666666595, 101.66666666666856, 102.66666666666805, 103.66666666666646, 104.66666666666583, 105.66666666666623, 106.66666666666674, 107.66666666666686, 108.6666666666668, 109.6666666666664, 110.66666666666652, 111.66666666666657, 112.66666666666669, 113.66666666666657, 114.66666666666657, 115.66666666666657, 116.6666666666664, 117.66666666666663, 118.66666666666674, 119.66666666666663, 120.66666666666652, 121.66666666666657, 122.66666666666663, 123.66666666666657, 124.66666666666663, 125.66666666666657, 126.66666666666669, 127.66666666666657, 128.66666666666652, 129.66666666666674, 130.66666666666663, 131.66666666666663, 132.66666666666663, 133.66666666666663, 134.66666666666663, 135.6666666666664, 136.66666666666674, 137.66666666666652, 138.66666666666663, 139.66666666666663, 140.66666666666663, 141.66666666666663, 142.6666666666664, 143.66666666666674, 144.66666666666652, 145.66666666666663, 146.6666666666664, 147.66666666666663, 148.66666666666674, 149.66666666666674, 150.66666666666663, 151.66666666666674, 152.66666666666663, 153.66666666666663, 154.66666666666652, 155.66666666666663, 156.66666666666663, 157.6666666666664, 158.6666666666664, 159.66666666666674, 160.66666666666663, 161.66666666666674, 162.66666666666674, 163.6666666666664, 164.66666666666652, 165.66666666666652, 166.66666666666674, 167.6666666666664, 168.66666666666674, 169.66666666666708, 170.6666666666663, 171.66666666666674, 172.6666666666663, 173.66666666666663, 174.66666666666663, 175.66666666666663, 176.66666666666674, 177.66666666666674, 178.66666666666674, 179.66666666666617, 180.66666666666663, 181.6666666666664, 182.66666666666674, 183.66666666666674, 184.66666666666652, 185.66666666666663, 186.66666666666652, 187.66666666666663, 188.66666666666652, 189.66666666666652, 190.6666666666664, 191.66666666666663, 192.66666666666617, 193.66666666666663, 194.6666666666664, 195.6666666666663, 196.66666666666652, 197.66666666666652, 198.66666666666663, 199.66666666666652, 200.6666666666664, 201.66666666666663, 202.66666666666652, 203.66666666666674, 204.66666666666652, 205.66666666666652, 206.66666666666674, 207.66666666666686, 208.66666666666652, 209.66666666666686, 210.66666666666686, 211.66666666666686, 212.66666666666697, 213.66666666666663, 214.6666666666672, 215.66666666666697, 216.66666666666697, 217.6666666666673, 218.66666666666697, 219.66666666666708, 220.66666666666697, 221.6666666666673, 222.66666666666708, 223.6666666666672, 224.66666666666742, 225.66666666666754, 226.66666666666742, 227.6666666666673, 228.66666666666754, 229.66666666666742, 230.66666666666754, 231.66666666666777, 232.6666666666673, 233.66666666666765, 234.66666666666754, 235.66666666666777, 236.66666666666765, 237.66666666666777, 238.666666666668, 239.66666666666754, 240.66666666666788, 241.66666666666777, 242.66666666666777, 243.6666666666673, 244.66666666666788, 245.66666666666754, 246.66666666666833, 247.66666666666822, 248.6666666666681, 249.666666666668, 250.6666666666681, 251.66666666666777, 252.6666666666681, 253.66666666666833, 254.66666666666822, 255.66666666666777, 256.66666666666777, 257.666666666668, 258.66666666666777, 259.666666666668, 260.66666666666833, 261.6666666666682, 262.666666666668, 263.6666666666681, 264.6666666666682, 265.666666666668, 266.666666666668, 267.666666666668, 268.666666666668, 269.66666666666833, 270.6666666666681, 271.666666666668, 272.6666666666682, 273.66666666666856, 274.6666666666681, 275.66666666666833, 276.6666666666681, 277.66666666666845, 278.66666666666833, 279.66666666666856, 280.6666666666682, 281.6666666666679, 282.66666666666833, 283.666666666668, 284.6666666666682, 285.66666666666845, 286.66666666666856, 287.6666666666682, 288.66666666666845, 289.66666666666833, 290.66666666666856, 291.6666666666682, 292.66666666666845, 293.66666666666845, 294.6666666666687, 295.6666666666688, 296.66666666666833, 297.66666666666845, 298.6666666666682, 299.6666666666682, 300.66666666666833, 301.66666666666845, 302.6666666666682, 303.6666666666688, 304.66666666666833, 305.66666666666845, 306.6666666666687, 307.6666666666687, 308.6666666666688, 309.66666666666845, 310.6666666666688, 311.6666666666688, 312.6666666666689, 313.6666666666688, 314.6666666666687, 315.6666666666688, 316.6666666666689, 317.66666666666845, 318.6666666666688, 319.6666666666688, 320.666666666669, 321.6666666666688, 322.6666666666689, 323.6666666666687, 324.6666666666689, 325.6666666666687, 326.6666666666687, 327.66666666666913, 328.6666666666689, 329.6666666666682, 330.6666666666682, 331.6666666666688, 332.6666666666687, 333.66666666666913, 334.66666666666947, 335.66666666666913, 336.6666666666697, 337.6666666666689, 338.6666666666688, 339.666666666669, 340.66666666666936, 341.6666666666689, 342.6666666666687, 343.66666666666924, 344.66666666666936, 345.6666666666689, 346.666666666669, 347.6666666666689, 348.6666666666689, 349.6666666666687, 350.6666666666687, 351.6666666666687, 352.6666666666682, 353.66666666666856, 354.6666666666688, 355.66666666666856, 356.66666666666845, 357.66666666666856, 358.6666666666682, 359.6666666666682, 360.66666666666845, 361.66666666666845, 362.6666666666682, 363.6666666666682, 364.6666666666681, 365.6666666666681, 366.6666666666682, 367.66666666666777, 368.66666666666856, 369.66666666666777, 370.66666666666833, 371.666666666668, 372.66666666666754, 373.66666666666777, 374.66666666666856, 375.666666666668, 376.66666666666777, 377.6666666666681, 378.66666666666833, 379.666666666668, 380.6666666666679, 381.666666666668, 382.66666666666754, 383.66666666666765, 384.66666666666765, 385.66666666666754, 386.6666666666673, 387.6666666666672, 388.6666666666671, 389.666666666668, 390.6666666666673, 391.6666666666679, 392.66666666666765, 393.6666666666672, 394.66666666666777, 395.66666666666765, 396.6666666666672, 397.6666666666673, 398.6666666666672, 399.6666666666673, 400.66666666666754, 401.66666666666686, 402.6666666666673, 403.6666666666672, 404.6666666666664, 405.6666666666672, 406.6666666666664, 407.6666666666665, 408.66666666666686, 409.6666666666664, 410.66666666666686, 411.66666666666686, 412.66666666666686, 413.6666666666662, 414.6666666666664, 415.66666666666765, 416.6666666666664, 417.66666666666686, 418.6666666666664, 419.66666666666674, 420.66666666666686, 421.6666666666657, 422.6666666666664, 423.66666666666697, 424.6666666666662, 425.66666666666663, 426.66666666666595, 427.6666666666663, 428.6666666666662, 429.66666666666595, 430.66666666666686, 431.66666666666674, 432.66666666666663, 433.6666666666664, 434.66666666666686, 435.6666666666664, 436.66666666666663, 437.66666666666697, 438.6666666666663, 439.6666666666662, 440.66666666666674, 441.6666666666663, 442.66666666666686, 443.6666666666664, 444.66666666666697, 445.66666666666595, 446.6666666666664, 447.66666666666595, 448.66666666666697, 449.6666666666664, 450.66666666666697, 451.6666666666671, 452.66666666666674, 453.6666666666664, 454.66666666666595, 455.66666666666686, 456.66666666666595, 457.6666666666664, 458.6666666666674, 459.6666666666671, 460.6666666666671, 461.66666666666674, 462.6666666666665, 463.6666666666671, 464.66666666666595, 465.6666666666663, 466.6666666666663, 467.66666666666526, 468.6666666666655, 469.66666666666686, 470.6666666666664, 471.66666666666663, 472.66666666666606, 473.66666666666686, 474.6666666666664, 475.6666666666663, 476.66666666666606, 477.66666666666595, 478.6666666666664, 479.66666666666697, 480.66666666666686, 481.6666666666662, 482.6666666666655, 483.6666666666664, 484.66666666666686, 485.6666666666664, 486.6666666666665, 487.6666666666663, 488.6666666666664, 489.66666666666595, 490.66666666666595, 491.6666666666662, 492.6666666666655, 493.66666666666697, 494.6666666666671, 495.66666666666663, 496.66666666666595, 497.6666666666664, 498.6666666666665, 499.6666666666655, 500.6666666666663, 501.6666666666671, 502.66666666666595, 503.66666666666595, 504.66666666666686, 505.66666666666606, 506.6666666666664, 507.6666666666663, 508.6666666666663, 509.66666666666595, 510.6666666666664, 511.6666666666664, 512.6666666666663, 513.6666666666658, 514.6666666666664, 515.6666666666671, 516.6666666666667, 517.6666666666663, 518.6666666666663, 519.6666666666661, 520.6666666666663, 521.6666666666674, 522.6666666666661, 523.6666666666658, 524.6666666666663, 525.6666666666658, 526.6666666666663, 527.6666666666663, 528.6666666666663, 529.6666666666663, 530.6666666666658, 531.6666666666666, 532.6666666666661, 533.6666666666658, 534.6666666666663, 535.666666666667, 536.6666666666667, 537.6666666666665, 538.6666666666664, 539.6666666666671, 540.6666666666663, 541.6666666666663, 542.6666666666667, 543.6666666666666, 544.6666666666665, 545.6666666666667, 546.6666666666658, 547.6666666666663, 548.6666666666663, 549.666666666667, 550.6666666666663, 551.6666666666665, 552.6666666666658, 553.6666666666667, 554.6666666666658, 555.6666666666665, 556.666666666667, 557.6666666666665, 558.6666666666663, 559.6666666666658, 560.6666666666667, 561.6666666666667, 562.6666666666672, 563.6666666666665, 564.6666666666663, 565.6666666666667, 566.6666666666663, 567.6666666666658, 568.6666666666663, 569.6666666666665, 570.6666666666658, 571.6666666666658, 572.6666666666663, 573.6666666666667, 574.6666666666663, 575.6666666666662, 576.6666666666666, 577.666666666667, 578.6666666666658, 579.6666666666663, 580.6666666666664, 581.6666666666665, 582.6666666666661, 583.6666666666665, 584.6666666666661, 585.6666666666667, 586.6666666666665, 587.6666666666667, 588.6666666666663, 589.6666666666671, 590.6666666666664, 591.6666666666663, 592.6666666666663, 593.6666666666658, 594.6666666666664, 595.6666666666665, 596.6666666666658, 597.6666666666658, 598.6666666666671, 599.6666666666663, 600.6666666666663, 601.6666666666658, 602.6666666666662, 603.666666666667, 604.6666666666658, 605.6666666666667, 606.6666666666665, 607.6666666666662, 608.666666666667, 609.6666666666665, 610.666666666667, 611.6666666666658, 612.6666666666663, 613.6666666666665, 614.6666666666666, 615.6666666666658, 616.6666666666672, 617.6666666666663, 618.6666666666663, 619.6666666666667, 620.6666666666663, 621.6666666666663, 622.6666666666661, 623.6666666666663, 624.6666666666658, 625.6666666666663, 626.6666666666662, 627.6666666666663, 628.6666666666663, 629.6666666666662, 630.6666666666663, 631.666666666667, 632.6666666666666, 633.6666666666663, 634.6666666666663, 635.6666666666667, 636.6666666666664, 637.6666666666665, 638.6666666666666, 639.6666666666663, 640.6666666666655, 641.6666666666658, 642.6666666666664, 643.6666666666671, 644.666666666667, 645.6666666666666, 646.6666666666663, 647.6666666666658, 648.6666666666663, 649.6666666666665, 650.6666666666664, 651.6666666666665, 652.666666666667, 653.6666666666658, 654.6666666666661, 655.6666666666658, 656.6666666666664, 657.6666666666662, 658.6666666666658, 659.6666666666672, 660.6666666666658, 661.6666666666663, 662.666666666667, 663.6666666666663, 664.6666666666658, 665.6666666666663, 666.6666666666661, 667.6666666666663, 668.6666666666665, 669.6666666666663, 670.6666666666663, 671.6666666666663, 672.6666666666658, 673.6666666666662, 674.6666666666661, 675.6666666666661, 676.6666666666665, 677.6666666666658, 678.6666666666663, 679.6666666666663, 680.6666666666658, 681.6666666666663, 682.6666666666667, 683.6666666666661, 684.6666666666663, 685.6666666666661, 686.6666666666663, 687.666666666666, 688.666666666667, 689.6666666666679, 690.6666666666665, 691.6666666666664, 692.6666666666667, 693.6666666666672, 694.666666666666, 695.666666666667, 696.666666666667, 697.6666666666674, 698.6666666666665, 699.6666666666663, 700.6666666666663, 701.6666666666667, 702.666666666667, 703.6666666666661, 704.6666666666672, 705.6666666666667, 706.6666666666663, 707.6666666666669, 708.666666666666, 709.6666666666665, 710.666666666667, 711.6666666666679, 712.6666666666674, 713.6666666666658, 714.666666666665, 715.666666666666, 716.666666666667, 717.6666666666674, 718.666666666667, 719.6666666666661, 720.6666666666649, 721.6666666666672, 722.666666666666, 723.666666666666, 724.6666666666656, 725.6666666666667, 726.6666666666672, 727.6666666666658, 728.6666666666663, 729.666666666665, 730.6666666666655, 731.666666666667, 732.6666666666665, 733.6666666666661, 734.6666666666672, 735.666666666666, 736.666666666665, 737.666666666667, 738.6666666666679, 739.6666666666677, 740.6666666666677, 741.6666666666667, 742.6666666666669, 743.6666666666672, 744.6666666666663, 745.666666666667, 746.666666666667, 747.6666666666665, 748.6666666666661, 749.6666666666654, 750.666666666666, 751.666666666667, 752.666666666667, 753.6666666666667, 754.666666666667, 755.6666666666663, 756.666666666666, 757.6666666666655, 758.6666666666661, 759.6666666666661, 760.6666666666665, 761.666666666667, 762.6666666666672, 763.6666666666654, 764.6666666666669, 765.666666666667, 766.6666666666674, 767.6666666666667, 768.6666666666679, 769.6666666666677, 770.666666666666, 771.666666666665, 772.6666666666679, 773.666666666667, 774.6666666666661, 775.6666666666661, 776.6666666666672, 777.6666666666661, 778.666666666666, 779.666666666667, 780.6666666666679, 781.6666666666661, 782.6666666666667, 783.6666666666658, 784.666666666666, 785.666666666666, 786.6666666666667, 787.6666666666679, 788.666666666666, 789.6666666666658, 790.666666666667, 791.6666666666654, 792.6666666666664, 793.6666666666658, 794.666666666667, 795.6666666666667, 796.6666666666654, 797.6666666666663, 798.6666666666654, 799.666666666666, 800.6666666666669, 801.6666666666669, 802.6666666666664, 803.6666666666649, 804.6666666666661, 805.6666666666669, 806.666666666666, 807.666666666667, 808.6666666666665, 809.6666666666661, 810.6666666666663, 811.6666666666672, 812.666666666666, 813.666666666665, 814.666666666667, 815.6666666666665, 816.666666666667, 817.6666666666679, 818.6666666666649, 819.6666666666661, 820.6666666666672, 821.6666666666665, 822.6666666666674, 823.666666666667, 824.6666666666656, 825.6666666666672, 826.6666666666656, 827.6666666666661, 828.6666666666661, 829.666666666667, 830.666666666667, 831.6666666666661, 832.6666666666654, 833.6666666666645, 834.6666666666641, 835.6666666666674, 836.666666666667, 837.6666666666661, 838.6666666666667, 839.6666666666654, 840.666666666665, 841.6666666666661, 842.666666666667, 843.6666666666661, 844.666666666667, 845.6666666666661, 846.6666666666669, 847.666666666667, 848.6666666666679, 849.6666666666674, 850.6666666666661, 851.666666666667, 852.6666666666663, 853.6666666666667, 854.6666666666669, 855.666666666667, 856.6666666666661, 857.6666666666674, 858.6666666666661, 859.6666666666661, 860.6666666666674, 861.666666666666, 862.6666666666673, 863.6666666666679, 864.6666666666679, 865.6666666666661, 866.6666666666672, 867.6666666666663, 868.6666666666656, 869.6666666666652, 870.6666666666661, 871.6666666666665, 872.6666666666665, 873.6666666666679, 874.6666666666665, 875.6666666666663, 876.666666666666, 877.666666666666, 878.6666666666656, 879.6666666666674, 880.6666666666665, 881.6666666666674, 882.6666666666673, 883.6666666666667, 884.6666666666669, 885.666666666667, 886.666666666667, 887.6666666666656, 888.666666666666, 889.6666666666663, 890.6666666666672, 891.666666666666, 892.666666666666, 893.666666666667, 894.6666666666674, 895.6666666666663, 896.6666666666674, 897.6666666666661, 898.6666666666679, 899.6666666666679, 900.6666666666674, 901.6666666666656, 902.666666666667, 903.6666666666661, 904.6666666666663, 905.6666666666663, 906.6666666666661, 907.6666666666656, 908.6666666666667, 909.666666666666, 910.6666666666661, 911.6666666666661, 912.6666666666664, 913.6666666666661, 914.6666666666661, 915.6666666666661, 916.6666666666663, 917.666666666666, 918.6666666666664, 919.666666666667, 920.666666666667, 921.6666666666661, 922.6666666666661, 923.6666666666669, 924.6666666666655, 925.666666666667, 926.6666666666661, 927.666666666667, 928.6666666666661, 929.666666666667, 930.6666666666663, 931.6666666666663, 932.666666666666, 933.6666666666679, 934.6666666666669, 935.6666666666679, 936.6666666666656, 937.6666666666667, 938.666666666666, 939.666666666666, 940.6666666666656, 941.666666666667, 942.6666666666661, 943.6666666666674, 944.6666666666663, 945.666666666666, 946.6666666666656, 947.6666666666656, 948.6666666666673, 949.6666666666661, 950.666666666667, 951.666666666666, 952.6666666666669, 953.666666666667, 954.6666666666679, 955.666666666667, 956.6666666666679, 957.6666666666661, 958.6666666666664, 959.6666666666672, 960.666666666667, 961.666666666667, 962.6666666666655, 963.6666666666655, 964.6666666666656, 965.6666666666669, 966.6666666666661, 967.6666666666664, 968.6666666666663, 969.666666666666, 970.6666666666661, 971.6666666666663, 972.6666666666663, 973.6666666666656, 974.666666666666, 975.6666666666669, 976.6666666666665, 977.6666666666674, 978.666666666667, 979.6666666666665, 980.666666666666, 981.6666666666664, 982.6666666666665, 983.6666666666665, 984.6666666666663, 985.6666666666665, 986.6666666666665, 987.6666666666674, 988.6666666666667, 989.6666666666663, 990.6666666666655, 991.6666666666667, 992.666666666667, 993.666666666666, 994.6666666666661, 995.6666666666679, 996.666666666665, 997.6666666666674, 998.666666666667, 999.6666666666656, 1000.6666666666679, 1001.6666666666669]

#for i in range(1,1001):
#    ANS[i]=solve(i)

#print("!")

t=int(input())
for tests in range(t):
    N=int(input())

    if N<=1000:
        print(ANS[N])
    else:
        print(N+5/3)


0