Aktywne Wpisy
pieknylowca +2
publikowanie takich filmow to jest idiotyzm (no ale czego sie spodziewac po wiadomo kim) - przeciez to tylko woda na mlyn dla ruskich, dodatkowo przeciez jesli beda wiedziec ze po zlapaniu beda zabijani to nie beda chcieli sie poddawac skoro poddanie sie=smierc to beda woleli walczyc do ostatniego naboju. (ps nawet jesli to wagner to i tak stosuje sie wobec nich prawo miedzynarodowe) #rosja #wojna #ukraina

kantek007 +137
#turcja To dwumiesięczne niemowlę zostało uratowane po tym, jak leżało pod gruzami po trzęsieniu ziemi przez 128 godzin
This two-month-old baby was rescued after laying under quake rubble for 128 hours. A miracle
This two-month-old baby was rescued after laying under quake rubble for 128 hours. A miracle





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
i 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
@croppz:
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
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.
Bo wiesz chodzi o to ze nie manipulujesz jak domniemam. Ale...
Skoro lista wejsciowa jest "dana" czyli na to nie wplywasz to moze ograniczenia shufle sa nieistotne a nie masz na nie wplywu i nie mozesz nimi manipulowac. Wiec ogolnie wszystko ok
Moim zdaniem lepsze to niż wrzucanie długości tablicy + stała wartość.
@croppz:
No i widac wtedy ze seed tez nie jest zmanipulowany(chociaz tak na prawde latwo zmanipulowc ;) )
jeśli dobrze rozumiem może
@LowcaG:
@LowcaG:
tzn jest to pewnie jakoś tam możliwe ale nie wiem co w tym kontekście zmienia znana_wszystkim_losowa_liczba + liczba_głosujących w porównaniu do 0 + liczba_głosujących
@LowcaG:
@LowcaG:
Timestamp też jest spoko, jeżeli losowanie możesz zrobić tylko raz i
a konkretniej
lepsze byłoby chyba
@LowcaG:
@croppz:
jest spoko
no więc jeśli się nie mylę to
powinien być jeszcze bardziej spoko i odporny
ciekawi mnie jeszcze jak to się ma do realnego życia i ew profesjonalnych rozwiązań tego typu problemu
i wciąż nie łapię co tutaj zmienia ta znana wszystkim losowa liczba i czemu nie
Jeżeli o kolejności na liście decyduje kolejność plusowania to prędzej czy później jakiś cwaniak się zorientuje że wycofując plusa i plusując ponownie w odpowiednim momencie może sobie zapewnić zwycięstwo. ¯\_(ツ)_/¯
Tak, jakbyś zawsze brał czwarty element listy (honestly acquired by throwing a dice #pdk). Będzie to losowanie powtarzalne, weryfikowalne i zależne od listy, z której losujesz. Tyle tylko, że zawsze ten sam element...
W LOSOWANIU raczej chodzi o to, że jest LOSOWE i niepowtarzalne, a powtórzone wielokrotnie zwróci wszystkie elementy z jednakowym prawdopodobieństwem.
hmm no tak samego seeda nikt nie zna z góry bo zależy on od np liczby plusujących która jest nieznana
a to czy dodamy do tego znane wszystkim przed plusowaniem zero czy znane wszystkim przed plusowaniem niezero chyba niewiele zmienia (?)
i o manipulacje tu chyba ciężko bo nikt nie wie czy inny mniej kombinujący użytkownik
zwłaszcza jeśli biorę hash i wynik zależy od poszczególnych literek w każdym przypadkowym nicku
@croppz:
no dokładnie tak jak mówisz. Wbicie się na odpowiednią pozycję na liście miałoby sens tylko przy seedzie ustalonym z góry - wtedy jedyną zmienną w równaniu jest
Uzytkownik wchodzac na liste przelicza hashe n do przodu i sprawdza czy mu sie oplaca
ta godzina to chyba dowolna znana liczba jak każda inna
i chyba to np hashowanie plusujących powinno zapewnić wystarczającą losowość (?)
@LowcaG:
hmm no ale on chyba nie wie czy zaraz nie zaplusuje tego "xardaswielkiczarodziej" czy "mihaubiauek" co kompletnie zmienia hash i jest chyba nieprzewidywalne
to już kombinowanie przy braniu liczby głosów wydaje się dużo łatwiejsze
@LowcaG: