@ 2020-04-18T05:48:47Z <?php
function reduce($bits, $value = '0') {
if (strlen($bits) == 1) {
// a single bit can be flipped as needed
return ($bits[0] == $value) ? 0 : 1;
}
if ($bits[0] == $value) {
// nothing to do with this bit, flip the remainder
return reduce(substr($bits, 1));
}
// need to convert balance of string to 1 followed by 0's
// then we can flip this bit, and then reduce the new string to 0
return reduce(substr($bits, 1), '1') + 1 + reduce(str_pad('1', strlen($bits) - 1, '0'));
}
for ($i = 0; $i < 128; $i++) {
echo "$i (" . decbin($i) . ") takes " . reduce(decbin($i)) . " steps\n";
}
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 7.2.0 - 7.2.34 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.29 , 8.2.0 - 8.2.23 , 8.3.0 - 8.3.11 0 (0) takes 0 steps
1 (1) takes 1 steps
2 (10) takes 3 steps
3 (11) takes 2 steps
4 (100) takes 7 steps
5 (101) takes 6 steps
6 (110) takes 4 steps
7 (111) takes 5 steps
8 (1000) takes 15 steps
9 (1001) takes 14 steps
10 (1010) takes 12 steps
11 (1011) takes 13 steps
12 (1100) takes 8 steps
13 (1101) takes 9 steps
14 (1110) takes 11 steps
15 (1111) takes 10 steps
16 (10000) takes 31 steps
17 (10001) takes 30 steps
18 (10010) takes 28 steps
19 (10011) takes 29 steps
20 (10100) takes 24 steps
21 (10101) takes 25 steps
22 (10110) takes 27 steps
23 (10111) takes 26 steps
24 (11000) takes 16 steps
25 (11001) takes 17 steps
26 (11010) takes 19 steps
27 (11011) takes 18 steps
28 (11100) takes 23 steps
29 (11101) takes 22 steps
30 (11110) takes 20 steps
31 (11111) takes 21 steps
32 (100000) takes 63 steps
33 (100001) takes 62 steps
34 (100010) takes 60 steps
35 (100011) takes 61 steps
36 (100100) takes 56 steps
37 (100101) takes 57 steps
38 (100110) takes 59 steps
39 (100111) takes 58 steps
40 (101000) takes 48 steps
41 (101001) takes 49 steps
42 (101010) takes 51 steps
43 (101011) takes 50 steps
44 (101100) takes 55 steps
45 (101101) takes 54 steps
46 (101110) takes 52 steps
47 (101111) takes 53 steps
48 (110000) takes 32 steps
49 (110001) takes 33 steps
50 (110010) takes 35 steps
51 (110011) takes 34 steps
52 (110100) takes 39 steps
53 (110101) takes 38 steps
54 (110110) takes 36 steps
55 (110111) takes 37 steps
56 (111000) takes 47 steps
57 (111001) takes 46 steps
58 (111010) takes 44 steps
59 (111011) takes 45 steps
60 (111100) takes 40 steps
61 (111101) takes 41 steps
62 (111110) takes 43 steps
63 (111111) takes 42 steps
64 (1000000) takes 127 steps
65 (1000001) takes 126 steps
66 (1000010) takes 124 steps
67 (1000011) takes 125 steps
68 (1000100) takes 120 steps
69 (1000101) takes 121 steps
70 (1000110) takes 123 steps
71 (1000111) takes 122 steps
72 (1001000) takes 112 steps
73 (1001001) takes 113 steps
74 (1001010) takes 115 steps
75 (1001011) takes 114 steps
76 (1001100) takes 119 steps
77 (1001101) takes 118 steps
78 (1001110) takes 116 steps
79 (1001111) takes 117 steps
80 (1010000) takes 96 steps
81 (1010001) takes 97 steps
82 (1010010) takes 99 steps
83 (1010011) takes 98 steps
84 (1010100) takes 103 steps
85 (1010101) takes 102 steps
86 (1010110) takes 100 steps
87 (1010111) takes 101 steps
88 (1011000) takes 111 steps
89 (1011001) takes 110 steps
90 (1011010) takes 108 steps
91 (1011011) takes 109 steps
92 (1011100) takes 104 steps
93 (1011101) takes 105 steps
94 (1011110) takes 107 steps
95 (1011111) takes 106 steps
96 (1100000) takes 64 steps
97 (1100001) takes 65 steps
98 (1100010) takes 67 steps
99 (1100011) takes 66 steps
100 (1100100) takes 71 steps
101 (1100101) takes 70 steps
102 (1100110) takes 68 steps
103 (1100111) takes 69 steps
104 (1101000) takes 79 steps
105 (1101001) takes 78 steps
106 (1101010) takes 76 steps
107 (1101011) takes 77 steps
108 (1101100) takes 72 steps
109 (1101101) takes 73 steps
110 (1101110) takes 75 steps
111 (1101111) takes 74 steps
112 (1110000) takes 95 steps
113 (1110001) takes 94 steps
114 (1110010) takes 92 steps
115 (1110011) takes 93 steps
116 (1110100) takes 88 steps
117 (1110101) takes 89 steps
118 (1110110) takes 91 steps
119 (1110111) takes 90 steps
120 (1111000) takes 80 steps
121 (1111001) takes 81 steps
122 (1111010) takes 83 steps
123 (1111011) takes 82 steps
124 (1111100) takes 87 steps
125 (1111101) takes 86 steps
126 (1111110) takes 84 steps
127 (1111111) takes 85 steps
preferences:dark mode live preview
79.88 ms | 418 KiB | 5 Q