ab / mod8l4.py
theapps's picture
Upload 36 files
ca165c7 verified
import random
import csv
def print_matrix(matrix):
for row in matrix:
print(','.join(map(str, row)))
def generate_random_values(num_values, zero_weight=0.5):
values = [3] + [random.randint(1, 7) for _ in range(num_values - 1)]
return [random.choice([0, val]) for val in values]
def randomize_l1(matrix, random_values, identical_positions, combination_positions):
if not identical_positions and not combination_positions:
common_random_value = random_values[0]
for i in range(len(matrix)):
matrix[i][0] = common_random_value
else:
for i in range(len(matrix)):
if (i, i + 1) in identical_positions or (i + 1, i) in identical_positions:
matrix[i][0] = random_values[i]
matrix[i + 1][0] = random_values[i]
elif (i, i) in combination_positions:
matrix[i][0] = random_values[i]
else:
matrix[i][0] = random_values[0]
def find_same_letter_positions(text):
same_letter_positions = []
for i in range(len(text)):
for j in range(i + 1, len(text)):
if text[i] == text[j]:
same_letter_positions.append((i, j))
same_letter_positions.append((j, i))
return same_letter_positions
def find_combination_positions(text, combinations):
combination_positions = []
for combination in combinations:
i = 0
while i < len(text) - len(combination) + 1:
if text[i:i+len(combination)] == combination:
for j in range(i, i+len(combination)):
combination_positions.append((j, j))
i += len(combination)
else:
i += 1
return combination_positions
def create_matrix_from_text(text):
num_rows = len(text)
num_columns = num_rows
matrix = [[0] * num_columns for _ in range(num_rows)]
for i in range(num_rows):
matrix[i][0] = text[i]
return matrix
for i in range(1, 20):
csv_filename = f'text{i}.csv'
combo4_filename = f'text{i}combo4.csv'
combo5_filename = f'text{i}combo5.csv'
with open(csv_filename, 'r') as file:
reader = csv.reader(file)
text = next(reader)[0]
same_letter_positions = find_same_letter_positions(text)
print(f"\n{text} - Same Letter Positions:", same_letter_positions)
combinations_to_find = ["ve", "ab", "gro", "pu", "lo", "co", "bus", "pla", "ac", "at", "pr", "fa", "gr", "to", "or", "fa", "fr", "ki", "qu", "cl", "ok", "fig", "run"]
combination_positions = find_combination_positions(text, combinations_to_find)
print(f"{text} - Combination Positions:", combination_positions)
matrix = create_matrix_from_text(text)
random_values = generate_random_values(len(text), zero_weight=0.5)
randomize_l1(matrix, random_values, same_letter_positions, combination_positions)
print(f"{text} - Matrix After Randomization:")
print_matrix(matrix)
with open(combo4_filename, 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
for row in matrix:
writer.writerow(row)
with open(combo5_filename, 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
for row in matrix:
writer.writerow(row)