![]() |
![]() ![]() |
![]() |
![]() ![]()
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 |
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
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 |
|
|
![]()
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: 23.08.2025 - 08:18 |