Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%)
|
Tworzę na własne potrzeby dość minimialistyczny system wymiany linków.
Inne takie projekty to np. likuj.pl lub linkor.pl Problem polega na tym, że nie wiem jak losować te 5 adresów do wyświetlenia. Przyjmijmy, że mamy już użytkownika z kontem, który zarejestrował kilka swoich stron w systemie i ma 1000 punktów. Porozdzielał te punkty na adresy które będzie reklamował pod dany anachor. Jak teraz "wylosować" 5 linków? Z moich dotychczasowych rozmyśleń, losowanie na pewno powinno uwzględnić:\ + ilość punktów przydzielonych danemu adresowi + ilość wyświetleń adresu Co jeszcze? Jak to powyliczać, jak pobrać z bazy? Macie pomysły? Ja nie :/ |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%)
|
Wraz ze znajomymi opracowaliśmy dwa sposoby.
Sposób 1 Kod * Tworzymy np. 4 przedzialy punktowe: * [1-10] * [10-50] * [50-250] * [250-1000] * * Losujemy liczbe z zakresu rand(1, 1000) * Wybieramy wszystkie rekordy z zakresu wg wylosowanej liczby * Juz bez zadnej faworyzacji losujemy jeden rekord * * Sposob ten mozna rozwinac o faworyzowanie liczby wyswietlen i innych * podczas drugiego losowania Sposób 2: Kod * N - liczba rekordow w bazie * * Losujemy liczbe z zakresu rand(1, N); * Losujemy liczbe z zakresu rand(1, <poprzednio wylosowana liczba) * Pobieramy wszystkie rekordy, sortujemy malejaca wg ilosci punktow * z zakresu 1..<druga wylosowana liczba> * * Zalety: latwosc w implementacji * Wady: Przy nieliniowym rozkladzie punktow w bazie wyniki beda niezadawalajace Sposób 3: Kod * Polaczenie ze soba dwoch ww. sposobow. Najpierw sposobem 1 okreslamy przedzial * potem sposobem 2 wybieramy link Jeśli to możliwe, prosze o ocene tychze sposobow, a takze o wlasne propozycje co do tego jak taki problem rozwiazac. |
|
|
|
Vengeance System wymiany linków 4.01.2006, 19:44:51
hwao Sprawa jest bardziej skompikowana niz moglo by sie... 4.01.2006, 20:11:21 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 14:09 |