Szukam osób do pomocy, nie musisz mieć umiejętności

  • 0 replies
  • 186 views
*

Offline Dawid

  • *
  • 11
  • 0
Szukam osób do pomocy, nie musisz mieć umiejętności
« dnia: Kwiecień 05, 2018, 16:47:03 pm »
Witam, mam nietypową prośbę. Otóż pracuję nad algorytmem kompresji losowych danych. Wiem, że takie dane trudno skompresować. Napisałem, krótki skrypt w bashu, który tworzy losowy plik i go kompresuje. Gdy po skompresowaniu uda się uzyskać rozmiar mniejszy niż przed kompresją to skrypt zapisuje wszystko do pliku wyniki.tar i kończy działanie. Skrypt tworzy również swoje tymczasowe pliki, których prosiłbym nie usuwać. Szczególnie pliku proba.dat gdzie przechowywana jest ilość wykonanych prób. Gdy usuniemy ten plik to skrypt zaczyna liczyć próby od początku przez co zaburza się statystykę. Moja prośba jest taka. Jeśli jest ktoś chętny pomóc to niech odpali ten skrypt. Działający skrypt pobiera trochę mocy procesora więc odpalcie go gdy nie używacie komputera. I żeby wam nie przegrzać komputera to możecie odpalić ten skrypt na jakąś godzinkę czy dwie. Więcej nie trzeba, mam nadzieję, że jeśli sporo osób to odpali to nawet kilkadziesiąt minut na osobę wystarczy by znaleźć plik z losowymi danymi, który się skompresuje do mniejszego rozmiaru. Jeśli komuś skrypt znajdzie taki taki plik to proszę by utworzony plik wyniki.tar wysłać mi w jakiś sposób.
Byłbym bardzo wdzięczny za pomoc. Dziękuję.

Niestety nie widzę opcji dodania załącznika (może dlatego, że jestem nowy) więc wklejam kod skryptu. zapiszcie to do pliku .sh i odpalcie.
#!/bin/bash

# ⓒdawidxx7

if [ -f "proba.dat" ]
then
  read proba <"proba.dat"
  if [ $(stat -c%s "proba.dat") -lt 2 ]
  then
    proba=0
  fi
else
  proba=0
fi

licznik=0

while true
do

for((s=1000; s<=100000; s*=10))
do
  dd if=/dev/urandom of=sampleSiz$s.txt bs=$s count=10
  tar -cjvf zippedSiz$s.tar.bz2 sampleSiz$s.txt
  proba="$( BC_LINE_LENGTH=0 bc <<< "$proba + 1")"
  ((licznik++))
  if [ $licznik -gt 100 ]
  then
    echo $proba > proba.dat
    licznik=0
  fi
 
  if [ $(stat -c%s "sampleSiz$s.txt") -gt $(stat -c%s "zippedSiz$s.tar.bz2") ]
  then
  echo -ne "nieskompresowany: sampleSiz$s.txt o rozmiarze: $(stat -c%s "sampleSiz$s.txt") skompresowany: zippedSiz$s.tar.bz2 o romiarze $(stat -c%s "zippedSiz$s.tar.bz2") s=$s proba: " >> wynik.txt
  echo $proba >> wynik.txt
  tar -cvf wyniki.tar zippedSiz$s.tar.bz2 sampleSiz$s.txt proba.dat wynik.txt tester.sh
  exit
  fi
done

done