Powrót   Forum CDRinfo.pl > Różne > Off topic

Off topic Forum poświęcone wszelkim innym tematom.



Witaj Nieznajomy! Zaloguj się lub Zarejestruj

Zarejestrowani użytkownicy mają dostęp do dodatkowych opcji, lepszej wyszukiwarki oraz mniejszej ilości reklam. Rejestracja jest całkowicie darmowa!

Odpowiedz na post
 
Opcje związane z dyskusją Tryby wyświetlania
Stary 17.03.2006, 23:17   #1
gallus
gÓru
 
Avatar użytkownika gallus
 
Data rejestracji: 20.12.2003
Lokalizacja: Zbąszynek
Posty: 5,986
gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>
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ć:
gallus jest offline   Odpowiedz cytując ten post

  #ads
CDRinfo.pl
Reklamowiec
 
 
 
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
 

CDRinfo.pl is online  
Stary 18.03.2006, 20:04   #2
pawelblu
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP
 
Avatar użytkownika pawelblu
 
Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>
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
pawelblu jest offline   Odpowiedz cytując ten post
Stary 19.03.2006, 01:29   #3
Ziele
.: AT90S2313 :.
 
Avatar użytkownika Ziele
 
Data rejestracji: 09.09.2002
Lokalizacja: Kraków
Posty: 2,724
Ziele zaczyna zdobywać reputację <1 - 49 pkt>
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.
k to ilość kolumn a w to ilość wierszy. Do testów użyłem ciagu ośmiu macierzy. Oba kody które wydają mi się takie same w działaniu wyliczją inne nawiasowanie i ilość operacji. Co tu może być nie tak?

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
Ziele jest offline   Odpowiedz cytując ten post
Stary 19.03.2006, 17:26   #4
pawelblu
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP
 
Avatar użytkownika pawelblu
 
Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>
if (r < a[j][i+j])=false then

Dlaczego false ?
pawelblu jest offline   Odpowiedz cytując ten post
Stary 19.03.2006, 17:31   #5
Ziele
.: AT90S2313 :.
 
Avatar użytkownika Ziele
 
Data rejestracji: 09.09.2002
Lokalizacja: Kraków
Posty: 2,724
Ziele zaczyna zdobywać reputację <1 - 49 pkt>
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
Ziele jest offline   Odpowiedz cytując ten post
Stary 19.03.2006, 17:47   #6
pawelblu
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP
 
Avatar użytkownika pawelblu
 
Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>
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.
pawelblu jest offline   Odpowiedz cytując ten post
Stary 19.03.2006, 17:59   #7
Ziele
.: AT90S2313 :.
 
Avatar użytkownika Ziele
 
Data rejestracji: 09.09.2002
Lokalizacja: Kraków
Posty: 2,724
Ziele zaczyna zdobywać reputację <1 - 49 pkt>
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
Ziele jest offline   Odpowiedz cytując ten post
Stary 19.03.2006, 18:47   #8
pawelblu
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP
 
Avatar użytkownika pawelblu
 
Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>
a moze to cos z semantyka:
Kod:
(( r < a[j][i+j]) = true )
albo r < a[j][i+j]
caly czas tak samo ??
pawelblu jest offline   Odpowiedz cytując ten post
Odpowiedz na post


Twoje uprawnienia:
Nie możesz rozpoczynać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz umieszczać załączników
Nie możesz edytować swoich postów

BB codeWłączone
EmotikonkiWłączone
Kody [IMG]Włączone
Kody HTML są Wyłączone

Teleport


Wszystkie czasy w strefie CET. Aktualna godzina: 15:35.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.