![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Możecie bez strachu przejśc tutaj: http://forum.php.pl/viewtopic.php?p=31706#31706 ;P
[php:1:725d22549f]<?php $hashes = array(); function get_string() { static $string, $depth, $init; if( ! $init ) { $init = true; $string = array( chr( 1 ), chr( 1 ), chr( 1 ), chr( 1 ) ); $depth = 4; } else { if( ( $char = ++ord( $string[ $depth - 1 ] ) ) > 255 ) { $string[ $depth - 1 ] = chr( 1 ); for( $i = $depth - 1; $i > 0; $i-- ) if( ++ord( $string[ $i - 1 ] ) > 255 ) { $string[ $i - 1 ] = chr( 1 ); if( ( $i - 2 == 0 ) && ( ++ord( $string[ 0 ] ) > 255 ) ) { $string[ ++$depth - 1 ] = chr( 1 ); break; } else $string[ $i - 2 ] = chr( ord( $string[ $i ] ) ++ ); } else break; } else $string[ $depth - 1 ] = chr( $char ); } return implode( '', $string ); } do $hashes[ md5( ( $string = get_string() ) ) ] = $string; while( sizeof( $hashes ) <= pow( 16, 32 ) ); $fd = fopen( 'hashtable', 'w' ); fputs( $fd, serialize( $hashes ) ); fclose( $fd ); ?>[/php:1:725d22549f]niech ktoś to przetestuje, może najpierw tylko funkcje get_string(); pisalem bez testowania z glowy, wiec nie wiem czy dziala. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Fatal error: Can't use function return value in write context in d:wwwhtable.php on line 16
![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
hmmm[php:1:62b5670084]<?php
$hashes = array(); function get_string() { static $string, $depth, $init; if( ! $init ) { $init = true; $string = array( chr( 1 ), chr( 1 ), chr( 1 ), chr( 1 ) ); $depth = 4; } else { if( ( $char = ( ord( $string[ $depth - 1 ] ) ) + 1 ) > 255 ) { $string[ $depth - 1 ] = chr( 1 ); for( $i = $depth - 1; $i > 0; $i-- ) if( ( ord( $string[ $i - 1 ] ) + 1 ) > 255 ) { $string[ $i - 1 ] = chr( 1 ); if( ( $i - 2 == 0 ) && ( ( ord( $string[ 0 ] ) + 1 ) > 255 ) ) { $string[ ++$depth - 1 ] = chr( 1 ); break; } else $string[ $i - 2 ] = chr( ( ord( $string[ $i ] ) + 1 ) ); } else break; } else $string[ $depth - 1 ] = chr( $char ); } return implode( '', $string ); } do $hashes[ md5( ( $string = get_string() ) ) ] = $string; print $string. "n";//debbuging while( sizeof( $hashes ) <= pow( 16, 32 ) ); $fd = fopen( 'hashtable', 'w' ); fputs( $fd, serialize( $hashes ) ); fclose( $fd ); ?>[/php:1:62b5670084] |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Cytat
:? Jak bede mial wiecej czasu to napisze jakas funkcje tworzaca stringi. P.S. Zamiast tworzenia calej tablicy i potem zapisywania jej do pliku lepeiej zrobic tak, ze podczas tworzenia klucza zostaje on automatycznie zapisany do pliku do nowej lini <hash>=<wartosc>. Gdyz zawsze mozna wtedy przerwac bez utraty poprzednich wynikow. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Cytat |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
wynik get_string()
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
hmmm
a przeanalizujmy kod (troche zmieniony ;P ):[php:1:21720c74fc]<?php $hashes = array(); function get_string() { static $string, $depth, $init; if( ! $init )//jezeli nie ma zapoczatkowanego to zrob to { $init = true; $string = array( chr( 1 ), chr( 1 ), chr( 1 ), chr( 1 ) );//ustaw na 1,1,1,1 poniewaz ponizszy kod wymaga conajmniej 4 znakow $depth = 4; } else//jezeli zapoczatkowane { if( ( $char = ( ord( $string[ $depth - 1 ] ) ) + 1 ) > 255 )//jezeli ostatni znak powiekszony o 1 przekracza pule ascii { $string[ $depth - 1 ] = chr( 1 );//zmien ostatni znak na pierwszy w ascii for( $i = $depth - 1; $i > 0; $i-- )//dla kazdego znaku blizej poczatku sprawdz, czy nie przekracza ascii if( ( ord( $string[ $i - 1 ] ) + 1 ) > 255 )//jezeli tak { $string[ $i - 1 ] = chr( 1 );//zmien ten znak na pierwszy w ascii if( ( $i - 2 == 0 ) && ( ( ord( $string[ 0 ] ) + 1 ) > 255 ) )//jezeli znak przed nim jest pierwszym znakiem i przekracza pule { $string[ ++$depth - 1 ] = chr( 1 );//zwieksz dlugosc stringow $string[ 0 ] = chr( 1 );//zmien pierwszy znak na ascii 1 break;//skoncz petla } else//jezeli nie $string[ $i - 2 ] = chr( ( ord( $string[ $i ] ) + 1 ) );//zwieksz znak przed ostatnim znakiem, zeby po 1,1,1,255 dawalo 1,1,2,1 a nie 1,1,1,1 } else//jezeli nie przekracza puli asci { $string[ $i ] = ord( $string[ $i - 1 ] ) + 1;//zwieksz go o 1 break;//i zakoncz petle } } else//jezeli nie to $string[ $depth - 1 ] = chr( $char );//zwieksz ten znak } return implode( '', $string );//wiadomo } //dalej wiadomo do { $hashes[ md5( ( $string = get_string() ) ) ] = $string; print $string. "n";//debbuging } while( sizeof( $hashes ) <= pow( 16, 32 ) ); $fd = fopen( 'hashtable', 'w' ); fputs( $fd, serialize( $hashes ) ); fclose( $fd ); ?>[/php:1:21720c74fc]Może dojrzycie błąd? ps. zastanawiam się, czy nie przenieść do php? conajmniej ostatnich paru postów //edit, juz sie nie zastanawiam ;P post nawiazuje dohttp://forum.php.pl/viewtopic.php?t=4985 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Ma moze ktos link skad mozna sciagnac slowniki ?
Chodzi mi tylko o same wyrazy. Ostatnio patrzylem i le zajmuje stworzenie tablicy z hashami tak jak to proponowales Jabol. Przetestowalem to na pliku z adresami proxy, ktory posiadal ok 700 000 adresow zajelo niecale 2 sekundy ! A moze ktos juz napisal funkcje do tworzenia wszystki mozilwych slow do okreslonej dlugosci znakow (znaki z przedzialu: 32-126 i 128-254 kodu asci) ? ![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Seth, mój skrypt ma w założeniach, że długość jest nieskończona
![]() Na linuxie (może na win, też jest, nie wiem, nie znam się) można by czytać z /dev/random cały czas. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
tylko, ze caly czas ten kod zwraca to:
![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat w założeniach :wink:
a tak wogole umiescilem go tu, żeby ktoś mi pomógł... |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
Tak w ogole to jest zatrudnianie zolwia do wyscigow dragsterow. Poszukaj libgmp i napisz to sobie w C. Z ta biblioteka to beda trzy-cztery linijki kodu.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 16:05 |