Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Permutacja z określoną ilością powtórzeń
Crenos
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.01.2009

Ostrzeżenie: (10%)
X----


Zacznę od tego, że nie jestem programistą z krwi i kości a raczej wieczornym laikiem, który pisze coś dla siebie 4fun.
Dlatego liczę na to, że mnie naprowadzicie jeżeli zafiksowałem się w swoim myśleniu.
Ostatnio chciałem stworzyć sobie mieszarkę do tekstów, która z tak przygotowanego tekstu będzie w stanie mi wygenerować tekst powiedzmy z 80% unikalnością.
{{Przykładowy|Wzorcowy} {tekst|materiał}|{Unikalny|Niepowtarzalny} {mechanizm|skrypt}}
To są przykładowe dwa pierwsze wyrazy zdania które chcę wymieszać.
I nie ma problemu z taką ilością bo jestem w stanie wygenerować 8 unikalnych opcji. Problem pojawia się z unikalnością w przypadku kiedy mam takich opcji dla kilku zdań ponad 100 i powstaje dzięki temu kilka zdań.
W czym tkwi problem (IMG:style_emoticons/default/smile.gif)
Stworzyłem sobie tekst który ma około 10k znaków z opcjami tak jak w tym przykładzie, wygenerowałem prawie 3mln kombinacji. I zawiesiłem się na moment bo stwierdziłem ze te 3mln kombinacji to w 80% tekst powtórzony. Znalazłem narzędzie do excela nazywa sie SeoTools, które po pierwsze jest też wstanie wymieszać mi tekst a po drugie sprawdzić powtarzającą się treść ile ciągów znaków (nie mam dostępu do kodu tej funkcji więc nie wiem dokładnie jak ona działa). Ale idąc tropem tego dodatku stwierdziłem, że napisze tekst który będzie miał około 5k kombinacji i na zasadzie porównania sprawdzę każdy z każdym co da mi 25k sprawdzeń i z tych wybiorę tylko te które, mają najmniejszą ilość powtórzonego tekstu. I wydaje mi się w jakiś 80%, że to jest słuszna metoda.
Ale excel ma tylko lekko ponad 1mln rekordów i czas przerabiania tych funkcji jest koszmarnie dług. Dlatego stwierdziłem, że przerobie to skryptem php.
Na początku stwierdziłem, że stworze skrypt który będzie mi generowała tekst bez jakichkolwiek powtórzeń. I w sumie to jest ok. Poczytałem poszukałem i znalazłem skrypt do permutacji bez powtórzeń, dodałem cały tekst w tablicę i działa ale przy około ponad 3mln kombinacji powstało mi tylko kilka tekstów, które są w 100% różne a mi zależy na tym, żeby teksty były powiedzmy w 80% różne.
Nie wiem za bardzo jak mierzyć unikalność.
I czy np metoda metoda wygenerowania tekstów a później sprawdzenia na zasadzie stworzonej tablicy gdzie będą dane z pierwszego nawiasu {} a w nim kolejne opcje z nawiasu zagnieżdżonego {} itd. aby sprawdzić ile jest unikalnych dla jednego rekordu tablicy i później kolejny i kolejny.
Kolejne co mi przychodzi do kłowy to wygenerować tablicę z wszystkimi zagnieżdżeniami i generować teksty na podstawie tej tablicy ale wtedy wyjdą tylko 100% unikaty a ja bym chciał wstawić jakąś zmienną która generowała mi 80% powtarzalności.

Może się zafiksowałem tak jak powiedziałem na początku, może są gotowe algorytmy na tego typu zagadnienia.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
r4xz
post
Post #2





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

Ostrzeżenie: (0%)
-----


radziłbym wpierw odstawić PHP i sięgnąć po np. C++? Nie do tego PHP został stworzony... (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Crenos
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 17.01.2009

Ostrzeżenie: (10%)
X----


No ok ale nie wykonalne to jest?
Bo przyszedł mi do głowy jeden pomysł tylko staram sie go na początku rozrysować.
A może jest jakaś biblioteka która takie cuda robi ? (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 15:28