Aktywne Wpisy

JakDorobic_com +44
Halo, halo, przed Wami #rozdajo trochę świąteczne, a trochę noworoczne, bo to właśnie na nowym roku się skupimy. Do zdobycia jest karta podarunkowa Allegro o wartości 100 zł!
A zasady są bardzo proste:
• Daj plusika.
•
A zasady są bardzo proste:
• Daj plusika.
•
źródło: Wykop-konkurs-apple-watch
Pobierz
szaman136 +643
Hahahaha dobre dobre, mój Mikołaju #wykopaka
źródło: scaled_1000026948
Pobierz




z listy o długości około 790 chciałm wybrać 5 jak najbardziej przypadkowych elementów
wydawało mi się że random.sample(l, k=5) jest dobrym rozwiązaniem tzn każdy pięcioelementowy podzbiór będzie mieć mniej więcej taką samą szansę na bycie wylosowanym
no ale chyba nie za bardzo tak jest bo przy pewnym ustalonym seedzie (2137*69 konkretniej) wyniki dla początkowych fragmentów listy o różnej długości nie różnią się za bardzo od siebie i zmieniają się istotnie dopiero w okolicach potęg dwójki
https://repl.it/repls/AssuredGeneralAtoms
czyli to tak jakby mniej więcej praktycznie nie brało pod uwagę elementów o indeksach powyżej 2\*\*floor(log(1000, 2)) ;///
no i ogólnie chyba nie spełnia w ogóle moich założeń o wybraniu 5 jak najbardziej przypadkowych elementów z danego zbioru ;\\
z drugiej strony przy zabawie w ten sposób:
https://repl.it/repls/UnevenMenacingPolyhedron
wszystko wydaje się w miarę ok, tzn elementy chyba są wybierane z w miaaaaaarę równym prawdopodobieństwem
jak poprawnie zrobić to co chciałm zrobić czyli po prostu ustalić sobie jakiś stały seed tak żeby wyniki były powtarzalne i dla danej listy wybrać jej jak najbardziej przypadkowy podzbiór, ale żeby jednocześnie dodanie albo usunięcie czegoś z końca listy jednak generowało zupełnie inny wynik a nie praktycznie na niego nie wpływało ;//
pierwszym co mi przychodzi do głowy jest dodanie do seeda len(lista) i chyba powinno to w miarę działać tak mi się wydaje
ale dlaczego właściwie sample działa inaczej niż sobie wyobrażałm
o co tu chodzi
czego nie rozumiem
#programowanie #python
23 * 37 * (lista.lenght * 7)
Masz liczby pierwsze co gwarantuje lepszy hasz + dlugosc listy wplywa na hash
@Chodtok: problem losowości polega na tym, że 1 2 3 4 5 jest tak samo losowe jak 42 458 3 743 349 ;P
źródło: comment_UyhlqPJw0YbF0beoVwifF9EqxDjAZF13.jpg
Pobierzi w zasadzie to jakieś zewnętrzne liczby chyba nie są tu potrzebne i wystarczyłoby za seed brać długość listy
ale może się mylę i może ogólnie jest jakieś lepsze rozwiąznie
@morsik: @sokytsinolop: @Przegrywek123: @croppz:
https://repl.it/repls/AssuredGeneralAtoms
bo wyniki wyglądają dla mnie niezbyt losowo
tzn myślałm że na wynik w sample ma wpływ zawartość list
i jakiś tam pewnie ma ale duuuuużo mniejszy niż mi się wydawało
tzn żebym mógł napisać za seed wziąłem to i to i morzecie sb zweryfikować wynik
@croppz:
@Chodtok: to chcesz losowe czy powtarzalne? ;) Zdecyduj się.
no oczekiwałem tego że sample pomimo tego samego seeda dla różnych list generuje różne wyniki tzn że w algorytmie losowania zmienność listy jest jakoś bardziej istotna
@croppz:
ehhh no tak jak kolega wyżej napisał chodzi mi o losowe ale dające się zweryfikować
@morsik:
@LowcaG: bierz oczywiscie ( ͡° ͜ʖ ͡°)
no tylko potem odkryłem że to chyba słaby sposób bo przy wybraniu konkretnego seeda lista miała dużo mniejszy wpływ na wynik niż myślałem że ma i duża jej część chyba wgl nie była brana pod uwagę
patrząc na to teraz najlepszym rozwiązaniem wydaje się mi po prostu wzięcie jako seed długości
hmmm nie jestem pewien ale w dokumentacji było coś chyba o tym że shuffle ma swoje ograniczenia
@LowcaG:
@Chodtok: to bierz unix time jako seeda, nic lepszego tu nie wymyślisz. Chociaż też to większego sensu nie ma, bo możesz sobie po prostu wyszukać timestampa który da wynik jaki chcesz. W przykładzie z obrazka trwało to mniej niż 5 sekund.
źródło: comment_2McNS9Th7eWJZp6N1tneIdCUL3mVyjQG.jpg
Pobierz