| |
|
|
p.specht
| Kompressionsalgorithmen wie die Huffman-Codierung erfordern es, das jeweils geringsthäufigste und das zweit-geringsthäufige Element zusammenzufassen. Die "Dynamische Huffmancodierung" erfordert das auch bei den häufigsten und zweithäufigsten Elementen... Aber die muss man erst mal ermitteln:
WindowTitle "Demo: Zweithäufigstes und Zweitwenigstes Element ermitteln"
font 2:randomize:cls rnd(8^8)
' Lineare Häufigkeitsverteilung in k% Klassen im Bereich low% bis high%
var k%=20 : var low%=10 : var high%=99
declare h%[k%-1]
WhileLoop 0,k%-1
h%[&Loop]=rnd(high%-low%+1) + low%
print &Loop,h%[&Loop]
Endwhile
' Häufigstes Element
declare max%,maxptr%
max%=0
WhileLoop 0,k%-1
if h%[&Loop]>max%
maxptr%=&Loop
max%=h%[&Loop]
endif
Endwhile
print
print maxptr%,max%,h%[maxptr%]," ",
' Zweithäufigstes Element
declare max2%,maxptr2%
max2%=0
WhileLoop 0,k%-1
if &Loop<>maxptr%
if h%[&Loop]>max2%
maxptr2%=&Loop
max2%=h%[&Loop]
endif
endif
Endwhile
print maxptr2%,max2%,h%[maxptr2%]," ",
' Wenigstes Element
declare min%,minptr%
min%=99999
WhileLoop 0,k%-1
if h%[&Loop]<min%
minptr%=&Loop
min%=h%[&Loop]
endif
Endwhile
print minptr%,min%,h%[minptr%]," ",
' Zweitwenigstes Element
declare min2%,minptr2%
min2%=99999
WhileLoop 0,k%-1
if &Loop<>minptr%
if h%[&Loop]<min2%
minptr2%=&Loop
min2%=h%[&Loop]
endif
endif
Endwhile
print minptr2%,min2%,h%[minptr2%]
locate maxptr%+1,10:print "< Maximum"
locate maxptr2%+1,10:print "< Next-to-Max"
locate minptr%+1,10:print "< Minimum"
locate minptr2%+1,10:print "< Next-to-Min"
Waitinput
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 25.04.2021 ▲ |
|
|
|