8 (800) 455-04-04
Вызов специалиста
hello@exspance.com
Предложения о партнерстве
python Копировать import datetime def calculate_project_score( complexity: int, risk_level: float, team_experience: int, budget: float, timeline: int ) -> float: """ Рассчитывает оценочное значение проекта на основе заданных параметров. Args: complexity (int): Уровень сложности проекта (1-5, где 5 - максимальная). risk_level (float): Уровень риска проекта (0.0 - 1.0, где 1.0 - максимальный). team_experience (int): Опыт команды в годах (чем больше, тем лучше). budget (float): Бюджет проекта. timeline (int): Срок выполнения проекта в месяцах. Returns: float: Итоговая оценочная стоимость проекта. """ # Нормализация входных данных для приведения к сопоставимому диапазону normalized_complexity = complexity / 5.0 normalized_risk = 1.0 - risk_level # Чем ниже риск, тем выше оценка normalized_team_experience = min(team_experience / 10.0, 1.0) # Ограничим максимальное влияние опыта # Весовые коэффициенты для каждого параметра (могут быть настроены) weights = { "complexity": 0.2, "risk": 0.3, "experience": 0.3, "budget": 0.1, "timeline": 0.1 } # Расчет скоринга score = ( normalized_complexity * weights["complexity"] + normalized_risk * weights["risk"] + normalized_team_experience * weights["experience"] ) # Учет бюджета и сроков (прямое влияние, но с учетом масштаба) # Предполагаем, что больший бюджет и меньший срок - это хорошо, но с определенными ограничениями # Для простоты, будем считать, что бюджет и сроки влияют на "масштабируемость" оценки # Можно добавить более сложную логику, например, штрафы за превышение сроков или нехватку бюджета # Для бюджета, можно ввести коэффициент, зависящий от его величины относительно средней стоимости проектов # Для сроков, можно ввести коэффициент, например, 1 / timeline (чем меньше срок, тем выше коэффициент) # # В данном примере, для простоты, скорректируем итоговую оценку на основе бюджета и сроков # Более реалистичное решение может требовать калибровки этих параметров под конкретные условия. # # Простая корректировка - если бюджет большой, а сроки короткие, оценка может быть выше. # Если бюджет маленький, а сроки большие, оценка может быть ниже. # Пример корректировки: # Если бюджет > 100000 и timeline < 6, увеличиеваем оценку на 10% # Если бюджет < 10000 и timeline > 12, уменьшаем оценку на 10% # Для демонстрации, просто просуммируем все нормализованные значения с весами, # но в реальной системе эти факторы будут более сложными. # Итоговая оценка может быть результатом умножения или сложения, в зависимости от желаемой логики # Здесь используем сложение, как итоговую сумму взвешенных показателей. # Простая формула для бюджета и сроков, чтобы они имели некоторое влияние # Чем больше бюджет, тем выше может быть потенциал, но и риски. # Чем меньше срок, тем больше фокусировка. # В данном случае, добавим их влияние через коэффициенты. final_score = score + (budget / 1000000.0) * weights["budget"] - (timeline / 20.0) * weights["timeline"] # Ограничим итоговый скор в разумных пределах, например, от 0 до 1 final_score = max(0.0, min(final_score, 1.0)) return final_score # Пример использования project_data = { "complexity": 4, # Высокая сложность "risk_level": 0.3, # Средний уровень риска "team_experience": 8, # Опыт команды 8 лет "budget": 150000, # Бюджет 150 000 "timeline": 10 # Срок выполнения 10 месяцев } project_score = calculate_project_score(**project_data) print(f"Оценочное значение проекта: {project_score:.2f}") # Ожидается значение в диапазоне от 0 до 1 Это базовый пример калькулятора для экспертизы проектов. Он учитывает несколько ключевых параметров: сложность, уровень риска, опыт команды, бюджет и сроки. Каждый параметр нормализуется, чтобы привести его к сопоставимому диапазону. Затем используются весовые коэффициенты, которые определяют относительную важность каждого параметра в общей оценке. Логика расчета включает: * **Сложность**: Чем выше сложность, тем выше потенциал, но и больше усилий потребуется. * **Уровень риска**: Чем ниже риск, тем выше оценка (обратная зависимость). * **Опыт команды**: Присутствует положительная корреляция – более опытные команды, как правило, более эффективны. * **Бюджет и сроки**: Являются более сложными параметрами. В данном примере они добавлены как простые корректирующие факторы, но в реальных системах их влияние может моделироваться гораздо сложнее (например, через функции, учитывающие оптимальные соотношения бюджета и сроков, штрафы за превышение, или потенциальный рост при наличии достаточных ресурсов). Итоговый результат находится в диапазоне от 0 до 1, где более высокое значение отражает более благоприятную оценку проекта. Веса и формулы могут быть настроены в зависимости от специфики оцениваемых проектов и бизнес-требований.
Создано на