diff options
| author | nsfisis <nsfisis@gmail.com> | 2024-09-11 03:28:16 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2024-09-11 03:28:16 +0900 |
| commit | 84bac718cf36291b7bc8004b8e3c0f60fc9ec39d (patch) | |
| tree | d34051df813d404ef8cf662fd8447de9cec80b27 /problems/13-Mod-3/a.rb | |
| parent | 861ef1d0f86b762b6a88f4579d04f1dd9b8f1bab (diff) | |
| download | mncore-challenge-84bac718cf36291b7bc8004b8e3c0f60fc9ec39d.tar.gz mncore-challenge-84bac718cf36291b7bc8004b8e3c0f60fc9ec39d.tar.zst mncore-challenge-84bac718cf36291b7bc8004b8e3c0f60fc9ec39d.zip | |
13-Mod-3 (incomplete)
Diffstat (limited to 'problems/13-Mod-3/a.rb')
| -rw-r--r-- | problems/13-Mod-3/a.rb | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/problems/13-Mod-3/a.rb b/problems/13-Mod-3/a.rb new file mode 100644 index 0000000..b0e909b --- /dev/null +++ b/problems/13-Mod-3/a.rb @@ -0,0 +1,56 @@ +def f1(n) + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + ((n >> 4) & 0b11) + + ((n >> 6) & 0b11) + + 0 + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + ((n >> 4) & 0b11) + + ((n >> 6) & 0b11) + + 0 + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + ((n >> 4) & 0b11) + + ((n >> 6) & 0b11) + + 0 + n == 3 ? 0 : n +end + +def f2(n) + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + ((n >> 4) & 0b11) + + ((n >> 6) & 0b11) + + 0 + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + 0 + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + 0 + n == 3 ? 0 : n +end + +def f3(n) + n = ((n >> 0) & 0b1111) + + ((n >> 4) & 0b1111) + + 0 + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + ((n >> 4) & 0b11) + + 0 + n = ((n >> 0) & 0b11) + + ((n >> 2) & 0b11) + + 0 + n == 3 ? 0 : n +end + +256.times do |n| + expected = n % 3 + actual = f3(n) + + if actual != expected + puts "#{actual} != #{expected} (#{n}; #{"%08b" % n})" + end +end |
