12345678910111213141516171819202122232425262728293031 |
- import argparse
- from collections import Counter
- from typing import List
- parser = argparse.ArgumentParser()
- parser.add_argument("ifile", type=argparse.FileType('r'))
- args = parser.parse_args()
- lines = [line.strip() for line in args.ifile.readlines()]
- counters: List[Counter] = [Counter() for i in range(0, len(lines[0]))]
- for line in lines:
- for index, char in enumerate(line):
- counters[index].update([char])
- gamma_string = ""
- epsilon_string = ""
- for counter in counters:
- if counter['1'] > counter['0']:
- gamma_string += '1'
- epsilon_string += '0'
- else:
- gamma_string += '0'
- epsilon_string += '1'
- gamma_rate = int(gamma_string, 2)
- epsilon_rate = int(epsilon_string, 2)
- print(f"gamma * epsilon = x, {gamma_rate} * {epsilon_rate} = {gamma_rate * epsilon_rate}")
|