%
Алгоритм Рюкзака

Меню сайта

Статистика
Рейтинг@Mail.ru Яндекс.Метрика

Алгоритм рюкзака на Pascal

Данный код является собственностью автора сайта
 
program Rukzak;
uses crt;
var
as,l,u,f:longint;
ppr,q:real;
n,m,x:longint;
v,k,c,s,ko1,ko2,ko3,ko4,ko5,ko6,ko7,ko8,a1,a2,a3,a4,a5,a6,a7,a8:integer;
w,r1, r2, r3, r4, r5, r6, r7, r8,e1, e2, e3, e4, e5, e6, e7, e8 :integer;
b,j,z1,z2,z3,z4,z5,z6,z7,z8 :integer;
begin
clrscr;
writeln ('vvedite posledovateinost zakritogo klycha');
write ('k=');
readln (a1, a2, a3, a4, a5, a6, a7, a8);
s:=a1+a2+a3+a4+a5+a6+a7+a8;
m:=s+1;
writeln ('m=',m,' > ',s);
writeln;
writeln ('vvesti n vzaimno prostoe s m:');
write ('n=');
readln (n);
ko1:=((a1*n)mod m); writeln ('ko1=',ko1);
ko2:=((a2*n)mod m); writeln ('ko2=',ko2);
ko3:=((a3*n)mod m); writeln ('ko3=',ko3);
ko4:=((a4*n)mod m); writeln ('ko4=',ko4);
ko5:=((a5*n)mod m); writeln ('ko5=',ko5);
ko6:=((a6*n)mod m); writeln ('ko6=',ko6);
ko7:=((a7*n)mod m); writeln ('ko7=',ko7);
ko8:=((a8*n)mod m); writeln ('ko8=',ko8);
writeln;
writeln ('otkritiy klych:');
writeln ('Ko={',ko1,' ',ko2,' ',ko3,' ',ko4,' ',ko5,' ',ko6,' ',ko7,' ',ko8,'}');
     writeln;
     writeln('vvedite chislo dlya shifrovaniya - proizvolnoe:');
     write ('P=');
     readln(r1);
     writeln;
     writeln('dvoichnoe predstavlenie chisla :',r1);
 
e1:=r1 mod 2;
r2:=r1 div 2;
e2:=R2 mod 2;
R3:=R2 div 2;
E3:=r3 mod 2;
R4:=R3 div 2;
E4:=R4 mod 2;
r5:=r4 div 2;
e5:=r5 mod 2;
R6:=R5 div 2;
r7:=r6 div 2;
e6:=r6 mod 2;
e7:=r7 mod 2;
if e7<1 theN e7:=0 else e7:=1;
iF e7=0 theN E8:=0 else e8:=r7 div 2;
     writeln;
     writeln ('P(2)=',e8, e7, e6, e5, e4, e3, e2, e1);
     writeln;
{ writeln ('Ppr=',ko1*e8,' ',ko2*e7,' ',ko3*e6,' ',ko4*e5,' ',ko5*e4,' ',ko6*e3,' ',ko7*e2,' ',ko8*e1,');}
 
         c:=ko1*e8+ko2*e7+ko3*e6+ko4*e5+ko5*e4+ko6*e3+ko7*e2+ko8*e1;
     writeln;
     writeln ('c=',c);
     writeln;
 
x:=1;
k:=(m*x+1);
while k mod n<>0 do begin x:=x+1; k:=(m*x+1);  end;
q:=k/n;
w:= trunc (q) ;
 
      l:=trunc (c);
      u:=trunc (w);
 
    f:=l*u;
    as:=f mod m;
     writeln ('Ppr=',as);
 
b:=a8;
if b<=as then begin z1:=1; b:=b+a7; end else begin z1:=0; b:=a7; end;
if b<=as then begin z2:=1; b:=b+a6; end else begin z2:=0; b:=(b-a7)+a6; end;
if b<=as then begin z3:=1; b:=b+a5; end else begin z3:=0; b:=(b-a6)+a5; end;
if b<=as then begin z4:=1; b:=b+a4; end else begin z4:=0; b:=(b-a5)+a4; end;
if b<=as then begin z5:=1; b:=b+a3; end else begin z5:=0; b:=(b-a4)+a3; end;
if b<=as then begin z6:=1; b:=b+a2; end else begin z6:=0; b:=(b-a3)+a2; end;
if b<=as then begin z7:=1; b:=b+a1; end else begin z7:=0; b:=(b-a2)+a1; end;
if b<=as then z8:=1 else z8:=0;
writeln;
writeln ('P(2)=',z8,z7,z6,z5,z4,z3,z2,z1);
writeln;
if z8=e8 then if  z7=e7 then if z6=e6 then
if z5=e5 then if z4=e4 then if z3=e3 then
if z2=e2 then if z1=e1  then j:=r1
else writeln ('FATAL ERROR');
writeln;
     writeln ('___razhifrovannii text___',j);
          writeln;
 
     readln;
 
end.
 


 

 

 

Скачать файл:algoritm rukzaka.pas

Скачать файл:algoritm rukzaka.EXE

Видео работы программы: http://youtu.be/kzoiiV6q6cI 

Варианты алгоритма рюкзака на Turbo Pascal

 


Назад Домой Вперед

 

 
Друзья сайта
  • Группа AR в ВК.
  • Группа AR в FB.
  • Группа AR в OK.
  • Алгебра Логики.
  • Альтернатива Групп.

  • Алгоритм Рюкзака © 2017 created AD.