![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 1.06.2003 Ostrzeżenie: (0%)
|
Witam,
znajomy dostał niedano zadanie: napsać skrypt w php, który wygeneruje plik o wielkości równej 15 MB zapełniony losowymi danymi.. niby nic trudnego, ładna pętla generująca losowe znaki z tablicy asci... powtórzeń będzie tylko... 15728640 :|... po chwili mielenia komp wypluwa że upłynął czas 30 sekund... a czas ma pozostać nieruszony - liczy się algorytm i koniecznie realizowany za pomocą php. drugie podejście: usatlić dwie liczby m i n, gdzie m * n = 15728640, wylosować jak poprzednio łańcuch m znaków i wprowadzić go do pliku n razy... niby działa o wiele szybciej, ale tym razem nie są to w pełni losowe dane - następuje powtórzenie pewnego m-wyrazowego ciągu. najlepiej by było za kazdym wywołaniem pętli n w jakiś sposób 'zadziałać' na ciągu, ale jak?? za każdym przebiegiem próbowałem zamieniać losowo wybrany znak w ciągu innym losowo wybranym, ale znowu to nie to - część łancucha dalej się powtarzała, a obliczone prawdopodobieństwo wystąpienia takiego zjawiska było bardzo małe... za bardzo... czy ktoś ma może pomysł jak coś takiego zrobić?? |
|
|
|
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 24.06.2002 Ostrzeżenie: (0%)
|
Jak masz dostęp do php.ini - moze wydłuż czas wykonywania skryptu.
Pzdr. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 1.06.2003 Ostrzeżenie: (0%)
|
jednym z warunków poprawnego wykonania zadania jest właśnie to, iż skrypt ma się wykonać w domyślnym czasie (czyli 30 sek), tak więc zmiana php.ini odpada...
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 12.01.2005 Ostrzeżenie: (0%)
|
nie ma bata zebys to wygenerowal w mniej niz 30s chyba ze masz jakas mega mazsyna:0
albo jakies mieszanie gotowych blokow po 1 mega czy cus edit. a moze jest bat:)) jeszcze testuje:) Ten post edytował vala 7.06.2005, 07:45:50 -------------------- Warsztat: Easy PHP 1.7:Apache 1.3.27|PHP 4.3.3|PHPMYADMIn 2.5.3|MYSQL 4.0.15
|
|
|
|
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Wrocław Ostrzeżenie: (0%)
|
Sprawdź to - generuje losowe ciągi po 2000 znaków... 15 MB na mojej nie za szybkiej maszynie (Duron 1300) to nie była nawet sekunda... a powtarzalność jest bardzo niska
-------------------- if(function_exists("zrozum_kobiete")){
echo "Niemożliwe!"; exit;} |
|
|
|
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%)
|
Wszystko kwestia algorytmu, dobry algotyrm dobry czas - zly algorytm ........
-------------------- |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 1.06.2003 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 12.01.2005 Ostrzeżenie: (0%)
|
od maszyny tez duzo zalezy
skryptem jono udalo mi sie wykrecic 22 mega -------------------- Warsztat: Easy PHP 1.7:Apache 1.3.27|PHP 4.3.3|PHPMYADMIn 2.5.3|MYSQL 4.0.15
|
|
|
|
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%)
|
Cytat od maszyny tez duzo zalezy No oczywiscie ze tak, bardziej mi chodzilo o to ze dobry algorytm to 90% sukcesu.
-------------------- |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.08.2025 - 03:52 |