3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php // 合計12種類あるガチャで、まわした回数に対して全種類コンプリートできている確率 // の表を作る // 少なくとも12回は回さないとコンプリートはできないので、 // スタートを12にする for ($i = (0 + 12); $i < (100 + 12); $i++) { /* * | 回すの何回目? | 引いて良いターゲットの種類 | * | --- | --- | * | 1 | 12 | * | 2 | 11 | * | 3 | 10 | * | .. | .. | // 最初の12回は、 12 - n + 1 で良いようだ * | 12 | 1 | // この時点でコンプリート * | 13 | 12 | * | 14 | 12 | */ $targetsCount = gmp_mul( // 引いて良いターゲットの集合の要素数 & 万分率 gmp_mul( // 引いて良いターゲットの集合の要素数 gmp_fact(12), // 12回目までの分 gmp_pow(12, $i - 12) // 13回目以降の分 ), gmp_init("10000") // 万分率にするため ); $sumCount = gmp_pow(12, $i); // 分母。 12 ** $i echo sprintf('%03d 回目', $i) . "\t" . gmp_div_q( gmp_mul($targetsCount, gmp_init($i)) // 組み合わせなので。 , $sumCount ) .PHP_EOL; }
Output for 5.6.0 - 5.6.30, 7.1.0 - 7.2.6
012 回目 6 013 回目 6 014 回目 7 015 回目 8 016 回目 8 017 回目 9 018 回目 9 019 回目 10 020 回目 10 021 回目 11 022 回目 11 023 回目 12 024 回目 12 025 回目 13 026 回目 13 027 回目 14 028 回目 15 029 回目 15 030 回目 16 031 回目 16 032 回目 17 033 回目 17 034 回目 18 035 回目 18 036 回目 19 037 回目 19 038 回目 20 039 回目 20 040 回目 21 041 回目 22 042 回目 22 043 回目 23 044 回目 23 045 回目 24 046 回目 24 047 回目 25 048 回目 25 049 回目 26 050 回目 26 051 回目 27 052 回目 27 053 回目 28 054 回目 29 055 回目 29 056 回目 30 057 回目 30 058 回目 31 059 回目 31 060 回目 32 061 回目 32 062 回目 33 063 回目 33 064 回目 34 065 回目 34 066 回目 35 067 回目 35 068 回目 36 069 回目 37 070 回目 37 071 回目 38 072 回目 38 073 回目 39 074 回目 39 075 回目 40 076 回目 40 077 回目 41 078 回目 41 079 回目 42 080 回目 42 081 回目 43 082 回目 44 083 回目 44 084 回目 45 085 回目 45 086 回目 46 087 回目 46 088 回目 47 089 回目 47 090 回目 48 091 回目 48 092 回目 49 093 回目 49 094 回目 50 095 回目 51 096 回目 51 097 回目 52 098 回目 52 099 回目 53 100 回目 53 101 回目 54 102 回目 54 103 回目 55 104 回目 55 105 回目 56 106 回目 56 107 回目 57 108 回目 58 109 回目 58 110 回目 59 111 回目 59
Output for hhvm-3.22.0
Fatal error: Uncaught Error: Object of class GMP could not be converted to string in /in/3mtj1:-1 Stack trace: #0 {main}
Process exited with code 255.
Output for hhvm-3.18.5 - 3.21.3
Fatal error: Uncaught Error: Object of class GMP could not be converted to string in /in/3mtj1:34 Stack trace: #0 {main}
Process exited with code 255.