![]() |
||
Nagrywarki |
Pliki |
Dyski twarde |
Recenzje |
Księgarnia |
Biosy |
Artykuły |
Nagrywanie od A do Z |
Słownik |
FAQ
|
||
|
Off topic Forum poświęcone wszelkim innym tematom. |
![]() |
|
Opcje związane z dyskusją | Tryby wyświetlania |
![]() |
#1 |
gÓru
Data rejestracji: 20.12.2003
Lokalizacja: Zbąszynek
Posty: 5,986
![]() ![]() ![]() |
Algorytm, może ktoś pomoże :)
Witam
![]() Zainteresował mnie ten problem, udało mi się go rozwiązać, ale nie w sposób zadawalający mnie, więc dzis z nudy postanowiłem pobawić się i wpadłem na pomysł, że można byłoby stworzyć program odczytujący hasło z pliku avi, lub chociaż program, który po podaniu ciągu znaków (HEX) przeliczyłby je na haslo do pliku tzn. narazie chodzi o to, aby znaleść algorytm i przeliczyć pozostałe znaki na HEX a następnie odwrócić algorytm i napisać prosty programik do zamiany HEX-owych wartości na hasło ![]() Niestety kombinuje już ładne kilka godzin, ale nie mogę wykombinować w jaki sposób zostało zaszyfrowane hasło ![]() Może na forum jest ktoś znający się na algorytmach i potrafiłby to rozszyfrować, podam to co udało mi się zdobyć: ![]() |
![]() |
![]() |
#ads | |
CDRinfo.pl
Reklamowiec
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
|
|
![]() |
![]() |
#2 |
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
![]() ![]() |
zalozmy ze na wejsciu mamy zakodowany znak ASCII w HEX (czyli 2 znaki opisujace 1 litere).
Jak zrobimy scanf("%x", &a); gdzie a jest unsigned int (int w praktyce tez moze byc). to z 9B otrzymamy 155. Teraz jak odejmiemy od 255 (to jest 2^8 - 1, najwieksza wartosc bajtu) otrzymane 155 - bedzie 100. Robimy (char) (100) i mamy d. To jest koncepcyjny zapis. Kuchni nie zrobie ![]() (to dziala tylko dla znakow lacinskich, nie polskich). Poza tym te dane sa bardzo ograniczone, wiec od bidy mozesz zrobic na chama alg, ze wczytujesz wszystko do tablicy i skaczesz wskaznikiem o 2 i za kazdym razem porownujesz za pomoca case/switch ze wszystkimi kodami i zapisujesz w tablicy wynikowej wlasciwy odkodowany znak. To jest szybke, latwe, ale bardzo 'nieinformatyczne', choc zyciowe ![]() |
![]() |
![]() |
![]() |
#3 |
.: AT90S2313 :.
Data rejestracji: 09.09.2002
Lokalizacja: Kraków
Posty: 2,724
![]() |
To teraz ja mam mały problem z algorytmami ;) Mam zrobić optymalne mnożenie macierzy. Znalazłem takie kod w c++: http://www-users.mat.uni.torun.pl/~l...orytmy/omm.htm i próbuję go przepisać pod delphi ale coś mi to nie wychodzi. Wydaje mi się że algorytm jest ten sam a mimo to nie działa.
Kod:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Label2: TLabel; Edit1: TEdit; Label3: TLabel; Label1: TLabel; Edit2: TEdit; Edit3: TEdit; procedure Button1Click(Sender: TObject); procedure drukuj(pocz:integer;kon:integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; a:array[0..100,0..100] of integer; implementation {$R *.dfm} procedure TForm1.drukuj(pocz:integer;kon:integer); begin if pocz=kon then begin edit1.Text:=edit1.Text+'M['+inttostr(pocz+1)+']'; end else begin edit1.Text:=edit1.Text+'('; drukuj(pocz,pocz+a[kon][pocz]); edit1.Text:=edit1.Text+')*('; drukuj(pocz+a[kon][pocz]+1,kon); edit1.Text:=edit1.Text+')'; end; end; procedure TForm1.Button1Click(Sender: TObject); var i,j,l,n,r:integer; w:array[0..100] of integer; k:array[0..100] of integer; begin edit1.Text:=''; n:=8; w[0]:=2; k[0]:=4; w[1]:=4; k[1]:=8; w[2]:=8; k[2]:=2; w[3]:=2; k[3]:=3; w[4]:=3; k[4]:=5; w[5]:=5; k[5]:=4; w[6]:=4; k[6]:=6; w[7]:=6; k[7]:=8; for i:=0 to n-1 do a[i][i]:=0; for i:=1 to n-1 do begin for j:=0 to n-i-1 do begin a[j][i+j]:=-1; for l:=0 to i-1 do begin r:=a[j][j+l]+a[j+l+1][i+j]+w[j]*k[j+l]*k[i+j]; if (r < a[j][i+j])=false then begin a[j][i+j]:=r; a[i+j][j]:=l; end; end; end; end; label3.Caption:='Ilość operacji: '+inttostr(a[0][n-1]); drukuj(0,n-1); end; end. Kod w c++ daje operacji: 306 ((((((M[1])*((M[2])*(M[3])))*(M[4]))*(M[5]))*(M[6]))*(M[7]))*(M[8]) a w delphi: operacji: 1232 (M[1])*((M[2])*(((((M[3])*(M[4]))*(M[5]))*((M[6])*(M[7])))*(M[8])))
__________________
LiteOn LTR-40125S & SOHW-1633S 8 ) Jak zrobić szybko sałatke z buraków? Wrzucić granata do BMW ![]() |
![]() |
![]() |
![]() |
#4 |
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
![]() ![]() |
if (r < a[j][i+j])=false then
Dlaczego false ? |
![]() |
![]() |
![]() |
#5 |
.: AT90S2313 :.
Data rejestracji: 09.09.2002
Lokalizacja: Kraków
Posty: 2,724
![]() |
bo chyba w c++ warunek si***281; spe***322;nia gdy jest false a w delphi gdy jest true wi***281;c doda***322;em gdy false. Nie zam si***281; za dobrze na c++ ale bez tego kod w delphi si***281; wywala.
To mo***380;e inaczej... jak optymalne nawiasowanie zapisa***263; w delphi wg tego: http://www.im.pwr.wroc.pl/~kik/AiSD/aisd5-4.pdf Algorytm podobny ale mo***380;e ten b***281;dzie dzia***322;a***263;.
__________________
LiteOn LTR-40125S & SOHW-1633S 8 ) Jak zrobić szybko sałatke z buraków? Wrzucić granata do BMW ![]() |
![]() |
![]() |
![]() |
#6 |
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
![]() ![]() |
w C warunek jest spelniony gdy wartosc wylicza sie do nie-zera, czyli jak jest cokolwiek innego od 0 to spelnia, a jak 0 to else.
if (r<a[j][i+j]) to porownanie zwraca chyba 1 (napewno cos rownego od 0) jak jest spelnione 0 jak niespelnione. w Pascalu jest podobnie, tylko tam 0 nazywa sie false a cokolwiek innego - true. Czyli nie powinno byc tego =false. |
![]() |
![]() |
![]() |
#7 |
.: AT90S2313 :.
Data rejestracji: 09.09.2002
Lokalizacja: Kraków
Posty: 2,724
![]() |
bez tego false dostaje to:
(M[1])*((M[2])*((M[3])*((M[4])*((M[5])*((M[6])*((M[7])*(M[8]))))))) czyli brak wyznaczonego optymalnego nawiasowania
__________________
LiteOn LTR-40125S & SOHW-1633S 8 ) Jak zrobić szybko sałatke z buraków? Wrzucić granata do BMW ![]() Ostatnio zmieniany przez Ziele : 19.03.2006 o godz. 18:23 |
![]() |
![]() |
![]() |
#8 |
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
![]() ![]() |
a moze to cos z semantyka:
Kod:
(( r < a[j][i+j]) = true ) albo r < a[j][i+j] |
![]() |
![]() |
![]() |
|
|