Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 19.05.2021
Сообщений: 174

Переделка программы

08.06.2021, 10:47. Показов 962. Ответов 4

Студворк — интернет-сервис помощи студентам
Доброе утро, переделайте пожалуйста программу. Такое условие - Аквариум объемом 15 имеет форму прямоугольного параллелепипеда с квадратным дном. Размеры этого аквариума, если на его изготовление потратили менее возможное количество стекла? Вывести размеры, объем, площадь стеклянной поверхности
аквариума (желательно с пояснительным текстом). Показать, что при этих размерах
использовано действительно минимальное количество стекла. Использовать классы. Создать несколько экземпляров класса. Имеется очень похожая задача но с коробкой, переделайте пожалуйста, буду очень благодарен.

Добавлено через 25 минут
Похожая задача
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class korobka(): 
    def __init__(self,x=0,y=0): 
        self.x = x 
        self.y = y 
        if x > 0 and y > 0: 
            print("Розмеры для коробки:: " + "\nA = ", x," см." "\nB = ", y," см.") 
            print("\nУспешно") 
        else: 
            print("Неудача:)") 
    def obiem(self): 
        x = 12
        y = -(4 * self.x + 4 * self.y) 
        proizv = self.x * self.y 
        D = ((y 2) - 4 * x * proizv) (1 / 2) 
        x1 = ((-1 * y) + D) / (2 * x) 
        x2 = ((-1 * y) - D) / (2 * x) 
        print("\nКорни: ", round(x1,2), " ; ",round(x2,2), "\n") 
        if x1 * 2 < self.x and x1 * 2 < self.y: 
            print("1 Корень подходит под коробку  Ответ:", x1) 
            print("\nОбьём = ", self.a * self.b * round(x1,2)) 
            print("\nРазмеры коробки   ", "A =",self.x,"B =",self.b,"H =",x1) 
        else: 
            print("\n1 корень не подходит под коробку\n") 
        if x2 * 2 < self.x and x2 * 2 < self.y: 
            print("2 корень подходит под коробку\n\nОтвет:", x2) 
            print("\nОбЬём = ", ((self.x-(2*x2)) * (self.y-(2*x2)) * round(x2,2)),"куб см") 
            print("\nРозмеры коробки   ", "\nA =",self.x-(2*x2),"\nB =",self.y-(2*x2),"\nH =",x2) 
        else: 
            print("\n2 корень подходит  под коробку\n") 
test = korobka(18,10) 
test.obiem()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.06.2021, 10:47
Ответы с готовыми решениями:

Переделка списка
Из статьи на Хабре Что такое *args и **kwargs в Python? Автор оригинала: Jonathan Hsu Оператор «звёздочка» Оператор * чаще...

Переделка кода
Доброе утро, нужна помощь с изменением кода, нужно изменить начало и конец, так что-бы данные брались с .txt файла и записывались в другой...

Переделка экземпляра класса
- Доброго времени суток Всем! - Очень мало работал с классами Python. Помогите, пожалуйста, в таком вопросе: Есть не сложная...

4
Заяц, просто Заяц.
 Аватар для Fury67
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
08.06.2021, 11:37
Я тут набросал генетическим алгоритмом решение. Надеюсь, что нигде не напортачил.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import random
from typing import Tuple, List
import numpy as np
import matplotlib.pyplot as plt
 
class Genome:
    values = np.array([])
    fitness = None
 
    def __init__(self, low: int, high: int, volume: int):
        self.low = low
        self.high = high
        self.volume = volume
 
    @classmethod
    def random_init(cls, size: int, low: int, high: int, volume: int):
        self = cls(low, high, volume)
        self.values = self.random_values(size)
        return self
 
    def random_values(self, size: int) -> np.array:
        tmp = np.random.uniform(self.low, self.high, size - 1)
        return np.array([tmp[0], tmp[1], self.volume / tmp[0] / tmp[1]])
 
    def __eq__(self, other):
        return np.array_equal(self.values, other.values)
 
    def __lt__(self, other):
        return self.fitness < other.fitness
 
    def __str__(self):
        return f'({self.values}, fitness={self.fitness}'
    
    def __repr__(self): 
        return str(self)
    
class GeneticAlgorithm:
    def __init__(self,
                 population_size: int,
                 genome_size: int,
                 volume: int,
                 value_range: Tuple[int, int],
                 max_iterations: int):
        self.population = self.create_population(population_size, genome_size, value_range, volume)
        self.calc_fitness()
        self.max_iterations = max_iterations
        self.best_gene = self.population[0]
 
    @staticmethod
    def create_population(population_size: int, genome_size: int, value_range: Tuple[int, int], volume) -> list:
        return [Genome.random_init(genome_size, *value_range, volume) for _ in range(population_size)]
 
    def solve(self) -> np.array:
        for iteration in range(self.max_iterations):
            for genome in self.population:
                if genome.fitness < self.best_gene.fitness:
                    self.best_gene = genome
 
            self.population = self.get_new_population()
            self.calc_fitness()
        return self.best_gene
 
    def get_new_population(self) -> List[Genome]:
        genome = self.population[0] 
        if False not in list(map(lambda g: g == genome, self.population)):
            return self.create_population(len(self.population), len(genome.values), (genome.low, genome.high), genome.volume)
 
        new_population = []
        fittest_half = self.select_fittest_half()
 
        for _ in range(len(self.population) - 1):
            parents = np.random.choice(fittest_half, 2)
            new_genome = self.mating(parents)
            new_population.append(new_genome)
            
        new_population.append(self.best_gene)
        
        return new_population
 
    def calc_fitness(self):
        for genome in self.population:
            genome.fitness = genome.values[0] * genome.values[1] * 2 + genome.values[2] * genome.values[1] * 2 + genome.values[0] * genome.values[2]
 
    def select_fittest_half(self) -> list:
        return sorted(self.population)[:(len(self.population) // 2)]
 
    @staticmethod
    def mating(parents: List[Genome]) -> Genome:
        if np.random.randint(0, 1) == 1:
            parents = (parents[1], parents[0])
 
        parent = parents[0]
        genome_size = len(parent.values)
 
        pivot_1 = np.random.randint(0, genome_size)
        pivot_2 = np.random.randint(0, genome_size)
 
        new_genome = Genome(parent.low, parent.high, parent.volume)
        new_genome.values = np.array([
            parents[0].values[pivot_1],
            parents[1].values[pivot_2], 
            parent.volume / parents[0].values[pivot_1] / parents[1].values[pivot_2]
        ])
        return new_genome
 
def main():
    genetic_algo = GeneticAlgorithm(
        population_size=10,
        genome_size=3,
        volume=15,
        value_range=(1, 15),
        max_iterations=10000,
    )
 
    genome = genetic_algo.solve()
 
    print(f'Min square value: {genome.fitness:0.2f}')
    print(genome.values)
 
if __name__ == '__main__':
    main()
0
0 / 0 / 0
Регистрация: 18.03.2021
Сообщений: 90
08.06.2021, 11:40
Fury67, Спасибо большое, Можете сделать попроще пожалуйста?
0
0 / 0 / 0
Регистрация: 19.05.2021
Сообщений: 174
08.06.2021, 12:07  [ТС]
Fury67, можете пожалуйста упростить, если не затруднит?

Добавлено через 15 минут
Fury67, и если не сложно, можете пожалуйста вывод сделать понятнее?
0
Заяц, просто Заяц.
 Аватар для Fury67
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
08.06.2021, 13:50
Цитата Сообщение от pasha345 Посмотреть сообщение
вывод сделать понятнее?
А что там не понятно?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.06.2021, 13:50
Помогаю со студенческими работами здесь

Дешифрование (переделка кода)
Добрый вечер, нужно переделать код под дешифрование, помогитее пожалуйста #!/usr/bin/env python3 shift = 3 chars =...

Переделка OCR скрипта OpenCV
Всем привет. Мне нужно сделать распознавание данных платежных карт с картинок. К счастью, 99% работы уже сделано в этом блоге -...

Переделка программы
Задание: 1. Создать объект-контейнер в соответствии с вариантом задания и заполнить его дан-ными, тип которых определяется вариантом...

Переделка программы с С++ на 1с
Доброго времени суток. Имеется код на плюсах, а нужен на 1с. Можете помочь? Условие задачи: Найти натуральные числа,...

Переделка программы
Необходимо переделать программу под эти условия. Разработать информационно справочную систему для работы с базой данных. Входные данные: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru