Forum jest zablokowane. Podczas blokady nie można dodawać ani edytować wiadomości.
            
        
    
    
    Temat: [SEN] Testy
                        Podmianka w generatorze:
>>>
uint32_t state;
uint32_t xorshift(){
state ^= state >> 7;
state ^= state << 9;
state ^= state >> 13;
return state;
}
int random_int(int a, int b) { return a + xorshift() % (b - a + 1); }
<<<
i wczytujemy w mainie zmienną state zamiast seed. Skrypt testujący (./script.sh <sciezka do rozwiazania>):
>>>
> output
for i in {1..100}
do
echo "TEST $i"
echo "$i 10 2 300 1000000" | ./generator >input
$1 <input >>output
done
cat output | tr -d " \t\n\r" | md5sum
<<<
Mi wyszło 256c83900ca0efe678687e79ba073983
                
                
            >>>
uint32_t state;
uint32_t xorshift(){
state ^= state >> 7;
state ^= state << 9;
state ^= state >> 13;
return state;
}
int random_int(int a, int b) { return a + xorshift() % (b - a + 1); }
<<<
i wczytujemy w mainie zmienną state zamiast seed. Skrypt testujący (./script.sh <sciezka do rozwiazania>):
>>>
> output
for i in {1..100}
do
echo "TEST $i"
echo "$i 10 2 300 1000000" | ./generator >input
$1 <input >>output
done
cat output | tr -d " \t\n\r" | md5sum
<<<
Mi wyszło 256c83900ca0efe678687e79ba073983
                        Potwierdzam
                    
                
                
            
                        Potwierdzam
                    
                
                
            
                        Potwierdzam
                    
                
                
            
                        Potwierdzam. Wgl co to za optymistyczne założenie, że w niczyim outpucie nie będzie innych białych znaków niż \r, \n i \t xD?
                    
                
                
            
                        Potwierdzam.
                    
                
                
            
                        Jakbym coś takiego robił to bym strollował i wypisywał md5 inów, a nie outów, może nikt by nie zauważył 8]
                    
                
                
            
                        Tam jest jeszcze wywalana spacja, to chyba razem daje wszystkie popularne białe znaki.
                    
                
                
            
                        A tak się spytam, co daje Wam "cat input | tr -d " \t\n\r" | md5sum" (tzn. md5 ostatniego inputu)? Bo mi coś nie wychodzi ta sama md5ka outów (uparcie e963b51a7e26e855711a8bc9a09354a7) i chciałbym się upewnić, że dobrze generuję inputy. U mnie 3ab51c8f0074ba2c49f27ecb6f2377ba.
Chętnie też przyjmę wynik polecenia komendy "awk 'END {print $NF}' output" (ostatnia liczba outputu), mi wychodzi "79658735421818".
                
                
            Chętnie też przyjmę wynik polecenia komendy "awk 'END {print $NF}' output" (ostatnia liczba outputu), mi wychodzi "79658735421818".
                        md5 ostatniego inputu - 9a0a535b200f71d77ebad24bdfc256ba, to chyba coś nie tak generujesz
                    
                
                
            
                        No rzeczywiście nieogar ze mnie, już potwierdzam. Nie skopiowałem "> output" do testerki, a miałem tam syf bo przy pierwszej próbie generacji wkleiłem tamto random_int w złe miejsce xd
                    
                
                
            
                        Jak komuś nie wychodzi md5 jak trzeba, to dobrym pomysłem jest też usunąć pliki input i output przed odpaleniem... :)
                    
                
                
            
                        A, okej, ja też tego nie skopiowałem :D  No to albo skopiować dobrze, albo usunąć outputa :P
                    
                
                
            
                        Potwierdzam że też nie skopiowałem "> output"
                    
                
                
            
                        Można też zrobić tak bez generowania żadnych plików:
>>>
for i in {1..100}
do
echo "TEST $i" >&2
echo "$i 10 2 300 1000000" | ./generator | $1
done | tr -d " \t\n\r" | md5sum
<<<
                
                
            >>>
for i in {1..100}
do
echo "TEST $i" >&2
echo "$i 10 2 300 1000000" | ./generator | $1
done | tr -d " \t\n\r" | md5sum
<<<
                        Potwierdzam. Też nie skopiowałem "> output" :')
                    
                
                
            
                        Potwierdzam. Ja na początku nie czytałem "state" w mainie.
                    
                
                
            
                        Co macie po zmianie MAX_AI w skrypcie z 1000000 na 321? Mi wyszło f0e521317a2069953127369c48a8615b
                    
                
                
            
                        Potwierdzam 10^6 oraz 321 :)
                    
                
                
            
                        Potwierdzam obie wersje.
                    
                
                
            
                        Potwierdzam obie :D
                    
                
                
             
            
         English
                    English