• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Диофантово уравнение

Светлана***

Ученик
Регистрация
27 Апр 2012
Сообщения
4
Реакции
0
Баллы
0
Диофантово уравнение

Помогите пожалуйста....это просто ужас какой то....
Разработать программу для решения Диофантова уравнения вида: a+2b+3c+4d=30, где a,b,c,d - некоторые положительные целые числа. Нахождение коэффициентов a,b,c,d осуществить с помощью генетического алгоритма.
 
Всё бы хорошо, вот только знать бы ещё на чём разработать программу ;)
Если мне ещё склероз не изменяет, лет 25 назад писал её на программируемом микрокалькуляторе.
 
Всё бы хорошо, вот только знать бы ещё на чём разработать программу ;)
Если мне ещё склероз не изменяет, лет 25 назад писал её на программируемом микрокалькуляторе.

упс простите))) на Паскале.... на Си есть в интернете... а вот на Паскале нету((((( Помогите.. очень надо...
 
Светлан, можно с СИ перекодить в паскаль, там не трудно, скачиваете книгу по СИ и смотрите значение команд.
а так вот, не даю гарантии что работать будет, но :
uses
crt;

type
tarray = array[1..4] of integer;
tmatrix = array[1..20] of tarray;

var
a: tmatrix;
i, j: integer;

function f(var a: tarray): integer;
begin
f := a[1] + 2 * a[2] + 3 * a[3] + 4 * a[4] - 30;
end;

procedure scresh(var a: tmatrix);
var
i, j, count, j1, j2: integer;
begin
count := random(20) + 1;
for i := 1 to count do
begin
j1 := random(20) + 1;
repeat
j2 := random(20) + 1;
until j1 <> j2;
for j := 1 to 4 do
a[j1, j] := abs((a[j1, j] - a[j2, j]) div 2) + 1;
end;
end;

procedure mutac(var a: tmatrix);
var
i, j, count, j1: integer;
begin
count := random(20) + 1;
for i := 1 to count do
begin
j1 := random(20) + 1;
for j := 1 to 4 do
a[j1, j] := abs(a[j1, j] + random(10) - 5) + 1;
end;
end;

procedure selec(var a: tmatrix);
var
i, j: integer;
b: tarray;
begin
for i := 1 to 19 do
for j := i + 1 to 20 do
if abs(f(a)) > abs(f(a[j])) then
begin
b := a;
a := a[j];
a[j] := b;
end;
end;

begin
randomize;
for i := 1 to 20 do
for j := 1 to 4 do
a[i, j] := random(100) + 1;
writeln('Search...');
repeat
scresh(a);
mutac(a);
selec(a);
writeln(a[1, 1], ' ', a[1, 2], ' ', a[1, 3], ' ', a[1, 4], ' f=', f(a[1]));
until abs(f(a[1])) = 0;
writeln('----------------');
writeln('Answer: a=', a[1, 1], '; b=', a[1, 2], '; c=', a[1, 3], '; d=', a[1, 4]);
readln;
end.
 
Последнее редактирование:
А можно как то подробно объяснить всю программу? почему 20 случайных чисел?
a[j1, j] := abs((a[j1, j] - a[j2, j]) div 2) + 1 вот эта формула откуда...? и последующие))
 
и вообще не хорошо воровать чужие программы....
 
и вообще не хорошо воровать чужие программы....
Светлана, вот Вы просите разработать программу. Для Вас её делают, Вы копируете и сдаете как собственную. Вот Вас совесть не мучает????
Кстати, откуда Вы знаете что не Gruvi её написал???
 
да не моя программа, просто смысл был писать программу самому, если готовая есть уже ? вам то какая разница светлана, кто её написал и как?
я специализируюсь в основном на delphi , но pascal не весь еще забыл
 
и вообще не хорошо воровать чужие программы....
Вот тебе и спасибочки. :D
Да уж... С минуту сидел с отвисшей челюстью, а потом ржал, аки конь непотребный. Ну просто восхитительная наглость! Т.е. позиция типа "вы мне напишите программу, я скатаю и сдам, как свою, но чтобы была оригинальной, а не то...". Bravissimo! rofl.gif
 
А может это мысли в слух были? Может это она себе? :D
 
Назад
Сверху