| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Hvordan holder man styr på ændringer i en ~ Fra : steen@silicium.dk | 
  Dato :  19-05-09 08:49 |  
  |   
            Lad os sige, at vi har en streng af tal:
 "0129386501946312827125634585784747387362835..." Lad os sige, at
 strengen er ret lang, f.eks. nogle tusinde cifre.
 
 Nu skal der foretages nogle ændringer i strengen. Og vi skal holde
 styr på, hvilke ændringer, der er foretaget hvor og hvornår.
 
 Som jeg ser det, bliver vi *nødt* til at referere til positioner i
 strengen. Jeg kan ikke se, hvordan det kunne gøres anderledes. F.eks.
 "på position 51 skal 5 ændres til 3, på position 217 skal 9 ændres til
 1", osv.
 
 Så længe vi kun ændrer et tal ad gangen, går det fint. Men lige så
 snart vi får en opgave af typen "på position 916 skal 3 ændres til
 454" eller "på position 1045 skal 6-tallet fjernes", så har vi
 balladen, for så skrider alle vores andre referencer.
 
 Hvordan hulen griber man det an?
  
            
             |   |   
            
        
 
            
         
           Martin Andersen (19-05-2009) 
         
	
            | Kommentar Fra : Martin Andersen | 
  Dato :  19-05-09 16:02 |  
  |   
            steen@silicium.dk wrote:
 > Lad os sige, at vi har en streng af tal:
 > "0129386501946312827125634585784747387362835..." Lad os sige, at
 > strengen er ret lang, f.eks. nogle tusinde cifre.
 > 
 > Nu skal der foretages nogle ændringer i strengen. Og vi skal holde
 > styr på, hvilke ændringer, der er foretaget hvor og hvornår.
 > 
 > Som jeg ser det, bliver vi *nødt* til at referere til positioner i
 > strengen. Jeg kan ikke se, hvordan det kunne gøres anderledes. F.eks.
 > "på position 51 skal 5 ændres til 3, på position 217 skal 9 ændres til
 > 1", osv.
 > 
 > Så længe vi kun ændrer et tal ad gangen, går det fint. Men lige så
 > snart vi får en opgave af typen "på position 916 skal 3 ændres til
 > 454" eller "på position 1045 skal 6-tallet fjernes", så har vi
 > balladen, for så skrider alle vores andre referencer.
 > 
 > Hvordan hulen griber man det an?
 
 Jeg ved ikke om der er en "rigtig" måde at gøre det på, men en løsning 
 kunne vel være at bruge pointere til strenge af forskellige længder. Til 
 at starte med kunne man nøjes med en pointer til den samlede streng. 
 Hvis noget bliver ændret på "position" x kunne man så dele strengen så 
 den første pointer nu kun havde en streng fra position 0 til x-1 og den 
 anden pointer så havde resten af strengen. Ved indsættelser gør man som 
 ved ændringer men indsætter samtidigt en pointer til en ny streng der 
 skal læses om om den er mellem de den forrige og den efterfølgende. Ved 
 siden af vedligeholder man så en ordnet liste over pointerne.
 
 My 2 cents.
  
            
             |   |   
            
        
 
            
         
           Peter Madsen (19-05-2009) 
         
	
            | Kommentar Fra : Peter Madsen | 
  Dato :  19-05-09 17:12 |  
  |  
 
            >Hvordan hulen griber man det an?
 Prøv at søg på difrential kompresion. Det er grundlæggende det princip man 
 bruger... at holde styr på ændringer.
 Det er velbeskrveet online, men jeg læste en gang en udmærket beskrivelse på 
 dansk. Den handler dog primært om blokkodning med en server der er på den 
 anden side af et langsomt netværk.
 http://www.greenleaf.dk/tag/projects.html
Lidt nede står der differential compression
 Ved ikke om det kan bruges, men det er som sagt velbeskrevet. 
            
              |   |   
            
        
 
            
         
           Glenn Møller-Holst (19-05-2009) 
         
	
            | Kommentar Fra : Glenn Møller-Holst | 
  Dato :  19-05-09 17:35 |  
  |  
 
            steen@silicium.dk wrote:
 > Lad os sige, at vi har en streng af tal:
 > "0129386501946312827125634585784747387362835..." Lad os sige, at
 > strengen er ret lang, f.eks. nogle tusinde cifre.
 > 
 > Nu skal der foretages nogle ændringer i strengen. Og vi skal holde
 > styr på, hvilke ændringer, der er foretaget hvor og hvornår.
 > 
 > Som jeg ser det, bliver vi *nødt* til at referere til positioner i
 > strengen. Jeg kan ikke se, hvordan det kunne gøres anderledes. F.eks.
 > "på position 51 skal 5 ændres til 3, på position 217 skal 9 ændres til
 > 1", osv.
 > 
 > Så længe vi kun ændrer et tal ad gangen, går det fint. Men lige så
 > snart vi får en opgave af typen "på position 916 skal 3 ændres til
 > 454" eller "på position 1045 skal 6-tallet fjernes", så har vi
 > balladen, for så skrider alle vores andre referencer.
 > 
 > Hvordan hulen griber man det an?
 Hej!
 Prøv:
 http://da.wikipedia.org/wiki/Git
http://en.wikipedia.org/wiki/Category:Version_control_systems
/Glenn
            
              |   |   
            
        
 
            
         
           jhp (19-05-2009) 
         
	
            | Kommentar Fra : jhp | 
  Dato :  19-05-09 18:23 |  
  |   
            steen@silicium.dk wrote:
 > Lad os sige, at vi har en streng af tal:
 > "0129386501946312827125634585784747387362835..." Lad os sige, at
 > strengen er ret lang, f.eks. nogle tusinde cifre.
 > 
 > Nu skal der foretages nogle ændringer i strengen. Og vi skal holde
 > styr på, hvilke ændringer, der er foretaget hvor og hvornår.
 > 
 > Som jeg ser det, bliver vi *nødt* til at referere til positioner i
 > strengen. Jeg kan ikke se, hvordan det kunne gøres anderledes. F.eks.
 > "på position 51 skal 5 ændres til 3, på position 217 skal 9 ændres til
 > 1", osv.
 > 
 > Så længe vi kun ændrer et tal ad gangen, går det fint. Men lige så
 > snart vi får en opgave af typen "på position 916 skal 3 ændres til
 > 454" eller "på position 1045 skal 6-tallet fjernes", så har vi
 > balladen, for så skrider alle vores andre referencer.
 > 
 > Hvordan hulen griber man det an?
 En posittion skal have tilstræklig bytes, til at bære informatinen og 
 herunder ."ikke-definition".
 Er det mere kompliceret end som så?
 mvh
 jhp
 
  
            
             |   |   
            
        
 
            
         
           Esben von Buchwald (20-05-2009) 
         
	
            | Kommentar Fra : Esben von Buchwald | 
  Dato :  20-05-09 01:58 |  
  |   
            Jeg ved ikke om det er en videnskabelig løsning, men du kan jo gemme en 
 XOR af strengen ved hver eneste ændring. Når der blot ændres værdier, 
 vil du få nogle 1'er hvor de ændres, resten vil være 0
 
 De enkelte XOR "snaphots" kan du så komprimere med en eller anden 
 algoritme, evt. er RLE nok, men vil sikkert ikke være optimal når der 
 indsættes eller fjernes tal, hvorfor en mere snedig algoritme kunne være 
 relevant...
  
            
             |   |   
            
        
 
            
         
           Bertel Lund Hansen (20-05-2009) 
         
	
            | Kommentar Fra : Bertel Lund Hansen | 
  Dato :  20-05-09 09:23 |  
  |  
 
            Esben von Buchwald skrev:
 > Jeg ved ikke om det er en videnskabelig løsning, men du kan jo gemme en 
 > XOR af strengen ved hver eneste ændring.
 Så kan man jo lige så godt gemme den rå streng hver gang.
 -- 
 Bertel
 http://bertel.lundhansen.dk/         FIDUSO:  http://fiduso.dk/
            
             |   |   
            
        
 
            
         
            Peter Madsen (20-05-2009) 
         
	
            | Kommentar Fra : Peter Madsen | 
  Dato :  20-05-09 09:56 |  
  |   
            > Så kan man jo lige så godt gemme den rå streng hver gang.
 
 Nah, nu skriver han dog
 "De enkelte XOR "snaphots" kan du så komprimere med en eller anden
 algoritme, evt. er RLE nok"
 og det er jo korrekt at det generelt vil kunne pakkes ret voldsomt.
 Princippet bruges i ligende form i andre algoritmer.
 
  
            
             |   |   
            
        
 
            
         
             Bertel Lund Hansen (20-05-2009) 
         
	
            | Kommentar Fra : Bertel Lund Hansen | 
  Dato :  20-05-09 11:17 |  
  |  
 
            Peter Madsen skrev:
 > og det er jo korrekt at det generelt vil kunne pakkes ret voldsomt.
 Så pakker man bare den rå streng. Jeg kan ikke se nogen fordel
 ved først at xore den.
 -- 
 Bertel
 http://bertel.lundhansen.dk/         FIDUSO:  http://fiduso.dk/
            
             |   |   
            
        
 
            
         
              Martin Andersen (20-05-2009) 
         
	
            | Kommentar Fra : Martin Andersen | 
  Dato :  20-05-09 11:28 |  
  |   
            Bertel Lund Hansen wrote:
 > Peter Madsen skrev:
 > 
 >> og det er jo korrekt at det generelt vil kunne pakkes ret voldsomt.
 > 
 > Så pakker man bare den rå streng. Jeg kan ikke se nogen fordel
 > ved først at xore den.
 > 
 fordi xor'en i tilfælde af substitution vil bestå af en hulens masse 
 sekventielle nuller og så enkelte 1-taller. Det kan komprimeres langt 
 bedre end en arbitrær streng af samme længde.
  
            
             |   |   
            
        
 
            
         
               Peter Madsen (20-05-2009) 
         
	
            | Kommentar Fra : Peter Madsen | 
  Dato :  20-05-09 14:49 |  
  |   
            > fordi xor'en i tilfælde af substitution vil bestå af en hulens masse 
 > sekventielle nuller og så enkelte 1-taller. Det kan komprimeres langt 
 > bedre end en arbitrær streng af samme længde.
 
 Ja, man kunne antage at første streng havde maksimal entropi og at anden 
 streng var identisk bortset fra een værdi der ændredes.
 Denne anden streng xor første er 0 og eet 1-tal. 
 
  
            
             |   |   
            
        
 
            
         
                Peter Madsen (20-05-2009) 
         
	
            | Kommentar Fra : Peter Madsen | 
  Dato :  20-05-09 14:52 |  
  |  
 
            > Denne anden streng xor første er 0 og eet 1-tal.
 .... som er minimal entropi.
 Ja, det var det der var min pointe som skulle prøve at gøre det til andet 
 end en gentagelse af Martins indlæg    
            
             |   |   
            
        
 
            
         
           jenspolsen@hotmail.c~ (23-05-2009) 
         
	
            | Kommentar Fra : jenspolsen@hotmail.c~ | 
  Dato :  23-05-09 16:51 |  
  |   
            Har du styr på alogoritmisk informations teori og Kolmogorov
 kompleksitit.
 Hvis ikke bør du læse op på det, da det vil give dig en forståelse for
 den teoretisk basis for dit spørgsmål.
 
 Hvis du har problemer med at se relevansen i forhold til dit konkrete
 spørgsmål, så spørg gerne igen.
 
 J.O.
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |