Лаба 3
This commit is contained in:
@@ -49,7 +49,7 @@ def parse_csv_file(csv_path: str) -> tuple[str, list[list[str]]]:
|
||||
data_rows = []
|
||||
for line in data_lines:
|
||||
parts = line.split(",")
|
||||
if len(parts) >= 6: # Pc + 5 значений Pm
|
||||
if len(parts) >= 2: # Pc + как минимум одно значение Pm
|
||||
data_rows.append(parts)
|
||||
|
||||
return header, data_rows
|
||||
@@ -113,7 +113,7 @@ def find_best_time(data_rows: list[list[str]]) -> float | None:
|
||||
min_time = None
|
||||
|
||||
for row in data_rows:
|
||||
for i in range(1, min(6, len(row))): # Пропускаем первую колонку (Pc)
|
||||
for i in range(1, len(row)): # Пропускаем первую колонку (Pc)
|
||||
time_value = extract_time_value(row[i])
|
||||
if time_value is not None:
|
||||
if min_time is None or time_value < min_time:
|
||||
@@ -135,7 +135,7 @@ def find_best_fitness(data_rows: list[list[str]]) -> float | None:
|
||||
min_fitness = None
|
||||
|
||||
for row in data_rows:
|
||||
for i in range(1, min(6, len(row))): # Пропускаем первую колонку (Pc)
|
||||
for i in range(1, len(row)): # Пропускаем первую колонку (Pc)
|
||||
fitness_value = extract_fitness_value(row[i])
|
||||
if fitness_value is not None:
|
||||
if min_fitness is None or fitness_value < min_fitness:
|
||||
@@ -229,12 +229,13 @@ def generate_latex_table(n: str, header: str, data_rows: list[list[str]]) -> str
|
||||
# Извлекаем заголовки колонок из header
|
||||
header_parts = header.split(",")
|
||||
pm_values = header_parts[1:] # Пропускаем "Pc \ Pm"
|
||||
num_pm_columns = len(pm_values) # Динамически определяем количество колонок
|
||||
|
||||
latex_code = f""" \\begin{{table}}[h!]
|
||||
\\centering
|
||||
\\small
|
||||
\\caption{{Результаты для $N = {n}$}}
|
||||
\\begin{{tabularx}}{{\\linewidth}}{{l *{{5}}{{Y}}}}
|
||||
\\begin{{tabularx}}{{\\linewidth}}{{l *{{{num_pm_columns}}}{{Y}}}}
|
||||
\\toprule
|
||||
$\\mathbf{{P_c \\;\\backslash\\; P_m}}$"""
|
||||
|
||||
@@ -250,12 +251,12 @@ def generate_latex_table(n: str, header: str, data_rows: list[list[str]]) -> str
|
||||
latex_code += f" \\textbf{{{pc_value}}}"
|
||||
|
||||
# Добавляем значения для каждого Pm
|
||||
for i in range(1, min(6, len(row))): # Максимум 5 колонок Pm
|
||||
for i in range(1, min(num_pm_columns + 1, len(row))):
|
||||
value = format_value(row[i], best_time, best_fitness)
|
||||
latex_code += f" & {value}"
|
||||
|
||||
# Заполняем недостающие колонки если их меньше 5
|
||||
for i in range(len(row) - 1, 5):
|
||||
# Заполняем недостающие колонки если их меньше чем num_pm_columns
|
||||
for i in range(len(row) - 1, num_pm_columns):
|
||||
latex_code += " & —"
|
||||
|
||||
latex_code += " \\\\\n"
|
||||
|
||||
Reference in New Issue
Block a user