def dec_to_base_x(dec, base, n_places=4):
lst = []
x = dec
for _ in range(n_places):
place = x % base
lst.append(place)
x //= base
return lst[::-1]
def dec_to_symbolic(dec, numeric_syst, n_places):
number_repr = dec_to_base_x(dec, base=len(numeric_syst), n_places=n_places)
return [numeric_syst[x] for x in number_repr]
def get_base_count(numeric_syst, n_places=8):
counts_d = {}
for i in range(0, len(numeric_system)**n_places):
counts_d[i] = dec_to_symbolic(i, numeric_system, n_places)
return counts_d
def get_digit_sum(numeric_syst, number, symbolic):
digit_sum_dec = []
for item in number:
digit_sum_dec.append(numeric_syst.index(item))
if symbolic == False:
return sum(digit_sum_dec)
digit_sum_symbolic = dec_to_symbolic(sum(digit_sum_dec), numeric_syst, n_places=len(digit_sum_dec))
digit_sum_symbolic = [str(item) for item in digit_sum_symbolic]
return ''.join(digit_sum_symbolic)
def get_base_x_distr(numeric_syst, n_places=8, symbolic=True):
base_count = get_base_count(numeric_syst, n_places)
distr = {}
for _, number in base_count.items():
digit_sum = get_digit_sum(numeric_syst, number, symbolic=symbolic)
if digit_sum not in distr:
distr[digit_sum] = 1
else:
distr[digit_sum] += 1
return distr
def simple_permutations_combinations(d):
counts = d.values()
perms = []
combs = []
for value in counts:
perm = True
for number in value:
if value.count(number) > 1:
perm = False
break
if perm == True:
perms.append(value)
if sorted(value, reverse=True) not in combs:
combs.append(sorted(value, reverse=True))
return perms, sorted(combs)
if __name__ == "__main__":
numeric_system = []
n = int(input("Enter number of elements : "))
print("Enter the Elements:")
for i in range(0, n):
ele = input()
numeric_system.append(ele)
print(numeric_system)
d = get_base_count(numeric_system, n_places=int(input("Enter number of places:")))
perms, combs = simple_permutations_combinations(d)
print("Total possible ways to Select and Arrange:")
for perm in perms:
print(perm)
print("Total ways:",len(perms))
print("Total possible ways to Select:")
for comb in combs:
print(comb)
print("Total ways:",len(combs))