0 / 0 / 0
Регистрация: 15.04.2019
Сообщений: 31
1

Перевести на python

22.04.2019, 15:41. Показов 635. Ответов 0
Метки нет (Все метки)

Pascal
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
const e=0.0001; // точность
var gold: real; // пропорция "Золотого сечения"
    a,b: real; // начало и конец отрезка
    x1,x2: real; // точки деления
    y1,y2: real; // значения целевой функции в точках деления
 
function f(x:real):real; // целевая функция
begin
f:=x*x*x-8*x+1-5*sin(x);
end;
 
begin
gold:=(sqrt(5)+1)/2;
a:=-5;
b:=5;
repeat
x1:=b-((b-a)/gold);
x2:=a+((b-a)/gold);
y1:=f(x1);
y2:=f(x2);
if(y1<=y2) then a:=x1 else b:=x2; // условие - поиск максимума
until abs(y2-y1)<e;
writeln('max(',(x1+x2)/2:0:3,',',(y1+y2)/2:0:3,')'); // середина интервала
a:=-5;
b:=5;
repeat
x1:=b-((b-a)/gold);
x2:=a+((b-a)/gold);
y1:=f(x1);
y2:=f(x2);
if(y1>=y2) then a:=x1 else b:=x2; // условие - поиск минимума
until abs(y2-y1)<e;
writeln('min(',(x1+x2)/2:0:3,',',(y1+y2)/2:0:3,')');
End.

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
import math
e = 0.0001
 
 
def f(x):
    f=x * x * x - 8 * x + 1 - 5 * math.sin(x)
    return f
 
 
gold=(math.sqrt(5) + 1) / 2
a=-5
b=5
while math.fabs(y2 - y1) < e:
    x1=b - ((b - a) / gold);
    x2=a + ((b - a) / gold);
    y1=f(x1)
    y2=f(x2)
if (y1 <= y2):
    a=x1
else:
    b=x2
print ('max(', (x1 + x2) / 2, ',', (y1 + y2) / 2, ')')
a=-5
b=5
while math.fabs(y2 - y1) < e:
    x1=b - ((b - a) / gold)
    x2=a + ((b - a) / gold)
    y1=f(x1)
    y2=f(x2)
if (y1 >= y2):
    a=x1
else: b=x2
print ('min(', (x1 + x2) / 2, ',', (y1 + y2) / 2, ')')
Есть код, но его надо изменить(проблемы repeat,until)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2019, 15:41
Ответы с готовыми решениями:

Перевести с С++ на Python
Задание: вычислить скалярную величину по формуле G = \frac{1+\sum }{\sum_{}^{}} элементы массива...

Перевести на python
program zadaca; var begin writeln('Введи число a'); readln(a); if a &gt; =0 then if a=0 then...

Перевести в python
Rectangle ob = new Rectangle(3, 5); - язык C# Rectangle- class как создать такую же переменную в...

Перевести с С++ на Python
https://site.ada.edu.az/~medv/acm/Docs%20e-olimp/Volume%2016/1517.htm Можете пожалуйста...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2019, 15:41
Помогаю со студенческими работами здесь

Перевести с C++ на python
Здравствуйте,помогите перевести код на python. Так как я не очень силен в C++ прошу вашей...

Перевести с C++ на Python
Нужна помощь перевести вот этот код на Python: #include &lt;iostream&gt; using namespace std; bool...

Перевести на python
var s:string; a,b:integer; r:array of integer; i:byte; begin for i:=0 to 3 do...

Перевести c C++ на python
for (int e=8; e&lt;12; e++) { // D edges have numbers 8..11 while (edges != 20) { //...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru