Top Challenge Entrants
1
jaytea
587 2
[Znork]
303 3
urza
297 4
Ag2X
288 5
dr_Eamer
255 6
Albie
199 7
Chessnut
197 8
A Noniem
194 9
zzattack
186 10
Kol
185 11
m910q
168 12
Sephiroth
115 13
Auron956
114 14
patje
114 15
chid
110 16
Ohad2121
92 17
SkorpSSS
87 18
DixrouE
84 19
Suchorski
83 20
^Vampire^
74
Challenge: Smallest $redist
Start: August 24th 2009
End: August 29th 2009
Results Well my first mircscripts.org challenge has come to an end and I think it's gone pretty smoothly! Some of you might not have been used to my 'different' specifications but you all adapted quite well and there was a pretty good turnout in the end.
There was a total of
28 non-regex entries and
8 regex entries .
Most of the methods were similar in this challenge... the real challenge was shortening this method as much as possible. jaytea succeeded in getting the shortest non-regex with a combination of the use of his supporting alias and the v1 & v2 statement to loop through ASC values 96-255.
For regex, Patje came in and destroyed all competition with his brilliant one-liner first 'expanding' all items and subsequently 'contracting' them. Great jobs to both of you!
Winner! jaytea (150 bytes)
i inc % $+ $asc($1) $mid($1,2)
redist {
i $*
%1 = 97
while %1 & 96 {
while $1 < $(,% $+ %1) || $v2 {
var %2 %2 $chr(%1) $+ $v1
dec % $+ %1 $v1
}
i
}
return %2
}
Winner! Patje (126 bytes)
redist return $regsubex($sorttok($regsubex($2-,/(.)(\d*)/g,$str(\1,\2)),2),/((.)\2{0, $+ $(},$1) $+ })/Sg,$chr(32)\2$len(\1))
Non regex entries Top entries:
1
jaytea
150 bytes
i inc % $+ $asc($1) $mid($1,2)
redist {
i $*
%1 = 97
while %1 & 96 {
while $1 < $(,% $+ %1) || $v2 {
var %2 %2 $chr(%1) $+ $v1
dec % $+ %1 $v1
}
i
}
return %2
}
2
Kol
153 bytes
redist {
z $*
%a = 96
while %a & 32 {
while $1 < $(,% $+ %a) || $v2 {
var %r %r $chr(%a) $+ $v1
dec % $+ %a $v1
}
inc %a
}
return %r
}
z inc % $+ $asc($1) $mid($1,2)
3
patje
155 bytes
redist {
unset %*
a $*
a 97
while %2 < 123 {
while $1 < $(,% $+ %2) || $v2 {
%r = %r $chr(%2) $+ $v1
dec % $+ %2 $v1
}
a
}
return %r
}
a inc % $+ $asc($1) $mid($1,2)
4
m910q
156 bytes
redist {
%r =
%i = 90
while %i {
%t = $calc($sorttok($replace($2-,$chr(%i),+),32))
while $iif(%t > $1,$1,%t) {
%r = %r $chr(%i) $+ $v1
dec %t $v1
}
dec %i
}
return %r
}
5
zzattack
159 bytes
x inc % $+ $left($1,1) $mid($1-,2)
redist {
x $*
x .97
while $chr(%.) {
%_ = $v1
while $iif($(,% $+ %_) > $1,$1,$v1) {
var %@ %@ %_ $+ $v1
x %_ - $+ $v1
}
x .
}
return %@
}
Srankie
159 bytes
redist {
_ $*
_ @97
while $chr(%@) {
%+ = $v1
while $iif($(,% $+ %+) > $1,$1,$v1) {
var %( %( %+ $+ $v1
_ %+ - $+ $v1
}
_ @
}
return %(
}
_ inc % $+ $left($1,1) $mid($1-,2)
6
urza
165 bytes
+ inc % $+ $asc($1) $mid($1,2)
r if ($1) %r = %r $chr(%1) $+ $1
redist {
unsetall
+ $*
+ 97
while %1 < 123 {
while $(,% $+ %1) > $1 {
r $1
dec % $+ %1 $1
}
r $v1
+
}
return %r
}
7
A Noniem
171 bytes
r inc % $+ $left($1,1) $mid($1,2)
redist {
r $*
%@ = 97
while $chr(%@) {
%% = $v1
while $(,% $+ %%) {
%! = $iif($v1 > $1,$1,$v1)
var %^ %^ %% $+ %!
dec % $+ %% %!
}
inc %@
}
return %^
}
8
[Znork]
174 bytes
redist {
b $2-
%ø =
while $hget(r,1).item {
%v = $v1
$iif($hget(r,%v) > $1,hdec,hdel) r %v $1
%ø = %ø %v $+ $iif($v1 < $1,$v1,$1)
}
return %ø
}
b a $*
a hinc -m r $left($1,1) $mid($1,2)
9
Ohad2121
178 bytes
a %u = %u $str($left($1,1),$mid($1,2))
redist {
%u =
a $*
%z = 97
while $chr(%z) {
%t = $count(%u,$v1)
while %t > 0 {
var %p %p $chr(%z) $+ $iif(%t > $1,$1,%t)
dec %t $1
}
inc %z
}
return %p
}
10
dr_Eamer
186 bytes
q {
if $1 {
%r = %r %% $+ $1
hdec r %% $1
}
}
redist {
%r =
while $2 {
%% = $left($2,1)
hinc -m r %% $mid($2,2)
while $hget(r,%%) > $1 q $1
if %% !isin $3- q $hget(r,%%)
tokenize 32 $1 $3-
}
return %r
}
11
Ag2X
189 bytes
redist {
hfree -w ¤
¤ $*
var %r,%n 122,%t
while %n > 96 {
%t = $chr(%n)
while $hget(¤,%t) > 0 {
%r = $+(%t,$iif($v1 > $1,$1,$v1)) %r
hdec ¤ %t $1
}
dec %n
}
return %r
}
¤ hinc -m ¤ $left($1,1) $mid($1,2)
12
jos
191 bytes
redist {
%€ =
%~ = $1
while $sorttok($2-,32) {
tokenize 32 $left($v1,1) $deltok($v1,1,32)
inc %c $mid($v1,2)
while $1 != $left($2,1) && $iif(%c > %~,%~,$v1) {
%€ = %€ $1 $+ $v1
dec %c $v1
}
}
return %€
}
13
Jigsy
196 bytes
a hinc -m t $left($1,1) $mid($1,2)
redist {
%0 = $1
%2 =
tokenize 32 $2-
a $*
while $hget(t,1).item {
%3 = $v1
%4 = $hget(t,%3)
hdel t %3
while %4 > 0 {
%2 = %2 %3 $+ $iif(%4 > %0,%0,%4)
dec %4 %0
}
}
return %2
}
14
^Vampire^
202 bytes
redist {
%o =
y $*
%i = 65
while %i < 91 {
%c = $chr(%i)
%l = $count(%o,%c)
var %s %s $iif($calc(%l % $1),%c $+ $v1) $str(%c $+ $1 $chr(32),$calc(%l /$1))
inc %i
}
return %s
}
y %o = %o $str($left($1,1),$mid($1,2))
15
chid
206 bytes
redist {
%. = 2
while $(,$ $+ %.) {
inc % $+ $left($v1,1) $mid($v1,2)
inc %.
}
%/ = 65
while %/ < 91 {
%0 = $chr(%/)
while $(,% $+ %0) {
%. = $iif($1 < $v1,$1,$v2)
var %# %# %0 $+ %.
dec $(% $+ %0) %.
}
inc %/
}
return %#
}
16
GWeizman
209 bytes
redist {
var %x 65
while %x < 91 {
var %y 1,%c $chr(%x),%z 0
while $matchtok($2-,%c,%y,32) {
inc %z $mid($v1,2)
inc %y
}
var %p %p $str($+(%c,$1,$chr(32)),$calc(%z /$1)) $iif($calc(%z % $1),%c $+ $v1)
inc %x
}
return %p
}
17
Albie
210 bytes
x if 1 \\ $1 inc % $+ $left($1,1) $mid($1,2)
redist {
x $*
while $var(%?,1) {
var %le $chr(32) $mid($v1,2),%re %re $str(%le $+ $1,$calc($($v1,2)/$1)) $iif($calc($($v1,2)% $1),%le $+ $v1)
unset $var(%?,1)
}
return %re
}
18
Sephiroth
212 bytes
redist {
%op =
þ $2-
while $var(%?,1) {
%ch = $mid($v1,2)
%op = %op $remove($str(%ch $+ $1 ',$int($calc($($v1,2)/$1))) %ch $+ $calc($($v1,2)% $1),%ch $+ 0,')
unset $v1
}
return %op
}
ý inc % $+ $left($1,1) $mid($1,2)
þ ý $*
19
poiuy_qwert
220 bytes
redist {
while $2 {
hinc -m ~ $left($2,1) $right($2,-1)
tokenize 32 $1 $3-
}
while $hget(~,1).item {
var %i $v1,%v = $hget(~,%i),%r = %r $str($+(%i,$1,$chr(32)),$calc(%v /$1)) $iif($calc(%v % $1),%i $+ $v1)
hdel ~ %i
}
return %r
}
20
Suchorski
236 bytes
redist {
while $0 != 1 {
%% = $(,$+($,$0))
hinc -m X $left(%%,1) $mid(%%,2)
tokenize 32 $(,$+($,1-,$calc($0 -1)))
}
while $hfind(X,*,1,w) {
%. = $v1
while $hget(X,%.) > 0 {
var %$ = %$ %. $+ $iif($v1 > $1,$1,$v1)
hdec X %. $1
}
hdel X %.
}
return %$
}
21
DixrouE
254 bytes
+6 bytes for being in remotes
alias redist {
unset %*
%i = 1
while $token($2-,%i,32) {
inc %. $+ $left($v1,1) $mid($v1,2)
inc %i
}
%n = 1
while $var(%.*,%n) {
var %z $mid($v1,3),%y $v1,%j 1
while %j <= $calc(%y /$1) {
%r = %r %z $+ $1
inc %j
}
if ($calc(%y % $1)) %r = %r %z $+ $v1
inc %n
}
return %r
}
22
SkorpSSS
258 bytes
+6 bytes for being in remotes
alias redist {
hmake t 1
%d = $1
while $2 {
hinc t $left($2,1) $right($2,-1)
tokenize 32 $2-
}
while $hget(t,1).item {
var %l $v1,%n $hget(t,%l),%q $int($calc(%n /%d)),%s $calc(%n -%q *%d),%r %r $str(%l $+ %d $chr(32),%q) $iif(%s,%l $+ %s)
hdel t %l
}
hfree t
return %r
}
Koolvin
258 bytes
redist {
var %m $1,%i 2,%e 1
while $($ $+ %i,2) {
var %l $left($v1,1),%a $right($v1,-1)
hinc -m r %l %a
inc %i
}
while $hfind(r,*,%e,w) {
var %v $v1,%c $hget(r,%v)
while %c > %m {
var %h %h %v $+ %m,%c $calc(%c - %m)
}
var %h %h $iif(%c,%v $+ %c)
inc %e
}
hfree r
return %h
}
23
Kylar
294 bytes
redist {
var %b $sorttok($2-,32),%i 1
while $left($gettok(%b,%i,32),1) {
var %j %i
while ($v1 == $left($gettok(%b,%j,32),1)) inc %j
var %v $v1,%c $calc($replace($gettok(%b,%i $+ - $+ $calc(%j -1),32),%v,+)),%r %r $iif($calc(%c % $1),%v $+ $v1) $str(%v $+ $1 $chr(32),$calc(%c / $1)),%i %j
}
return %r
}
Invalid entries:
Daveoh
249 bytes
$redist(4,x3,x3,x3) returned x1 x1 x4 x4 x4 x4 instead of x4 x4 x1
redist {
unsetall
%i1 = 1
while $gettok($2-,%i1,32) {
inc % $+ $left($v1,1) $mid($v1,2)
inc %i1
}
%i1 = 1
while $var(%?,%i1) {
%v1 = $v1
%m = $mid(%v1,2)
%re = %re $str($+(%m,$1,$chr(32)),$calc($(,%v1)/$1)) $iif($calc($(,%v1)% $1),%m $+ $v1)
inc %i1
}
return %re
}
jAck^^
312 bytes
$redist(111,m145,z54,m195,m12,z64) returned m111 m111 m111 m111 m19 m96 z111 z64 z7 instead of m111 m111 m111 m19 z111 z7
alias redist {
var %- $0,%<
while %- > 1 {
var %l $left($($ $+ %-,2),1)
var %n. $+ %l $calc(%n. [ $+ [ %l ] ] + $right($($ $+ %-,2),-1))
if (%l != $left($($ $+ $calc(%- -1),2),1)) %< = $str($+(%l,$1,$chr(32)),$int($calc(%n. [ $+ [ %l ] ] / $1))) $iif($calc(%n. [ $+ [ %l ] ] % $1) == 0,,%l $+ $v1) %<
dec %-
}
return %<
}
Natdhib
936 bytes
$redist(111,m145,z54,m195,m12,z64) returned m111 m111 m111 m83 z54 instead of m111 m111 m111 m19 z111 z7
redist {
var %Data1 = $Check($1,$2-)
Return %Data1
}
Check {
var %Ticks = 1
var %Mains = $1
var %Lines = $numtok($2-,32)
var %Datas = $2-
while (%Ticks <= %Lines) {
var %Data0 = $gettok($2-,%Ticks,32)
var %Data1 = $left(%Data0,1)
var %Data2 = $right(%Data0,$calc($len(%Data0) - 1))
var %Data3 = %Data3 %Data1
var %Data5 = $findtok(%Data3,%Data1,1,32)
var %Data6 = $findtok(%Data3,%Data1,0,32)
var %Data9 = %Data9 $iif(%Data6 = 1,%Data1)
var %Data11 = $replace($+($instok(%Data11,%Data2,%Data5,32),.),..,.)
var %Data12 = $replace(%Data11,$+(.,$chr(32)),.,$chr(32),+)
inc %Ticks
}
var %Ticks = 1
var %Data13 = $numtok(%Data12,46)
while (%Ticks <= %Data13) {
var %Data14 = %Data14 $ishappy($Calc($gettok(%Data12,%Ticks,46)),%Mains,$gettok(%Data9,%Ticks,32))
inc %Ticks
}
Return %Data14
}
Ishappy {
var %T = 1
var %U = 1
while (%T <= $1) {
if (%U = $2) {
var %Text = %Text $+($3,$2)
var %U = 0
}
inc %T
inc %U
}
dec %u
var %Text = %Text $iif(%U != 0,$+($3,%u))
return %Text
}
Regex entries Top entries:
1
patje
126 bytes
redist return $regsubex($sorttok($regsubex($2-,/(.)(\d*)/g,$str(\1,\2)),2),/((.)\2{0, $+ $(},$1) $+ })/Sg,$chr(32)\2$len(\1))
2
jaytea
148 bytes
redist {
%1 =
while $chr(%1 1) {
%2 = $calc($regsubex($2-,/ $v1 |\b\S+/gx,+))
while $1 < %2 || %2 {
var %3 %3 $chr(%1) $+ $v1
dec %2 $v1
}
dec %1
}
return %3
}
3
Ohad2121
169 bytes
redist {
%z = 97
while $chr(%z) {
%t = $count($regsubex($1-,/(\S)(\S*)/g,$str(\1,\2)),$v1)
while %t > 0 {
var %p %p $chr(%z) $+ $iif(%t > $1,$1,%t)
dec %t $1
}
inc %z
}
return %p
}
4
Kylar
184 bytes
redist return $regsubex($sorttok($2-,32),/(.)(\d+( \1\d+)*)/g,$str(\1 $+ [ $1 $!chr(32),$calc($calc($replace(\2,\1,+)) / $1 )) $!iif($calc($calc($replace(\2,\1,+)) % $1 ] ),\1 $+ $v1))
5
GWeizman
196 bytes
redist {
var %x 97
while %x < 123 {
var %c $chr(%x),%y $calc($regsubex($2-,$+(/\b[^,%c,]\d+|,%c,/g),+))
var %p %p $str($+(%c,$1,$chr(32)),$calc(%y /$1)) $iif($calc(%y % $1),%c $+ $v1)
inc %x
}
return %p
}
6
dr_Eamer
201 bytes
redist {
%% = $1
if $2- {
while $regsubex($v1,(\D)(\d+)(.+)\1(\d+),\1 $+ $calc(\2 + \4)\3) != $v1 /
}
return $regsubex($v1,/(\D)(\d+)/g,$str(\1 $+ %% $chr(32),$calc(\2 /%%)) $iif($calc(\2 % %%),\1 $+ $v1))
}
7
chid
203 bytes
redist {
%; = $1
return $regsubex($regsubex($1-,/ (.)\K(\d*)/g,$b(\1,\2)\2),/(.)\S*( )?/g,$m(\1,% $+ \1)\2)
}
b inc % $+ $1 $2
m {
while $(,$2) {
%. = $iif(%; < $v1,%;,$v2)
var %# %# $1 $+ %.
dec $2 %.
}
return %#
}
Invalid entries:
Albie
239 bytes
Longer than the non-regex version
redist {
%x = $regex(x,$sorttok($2-,32),/((\w)(.*\2\d+|\d+))/g)
while %x {
var %a $regml(x,$calc(%x *3-2)),%l $left(%a,1),%n ( $regsubex(%a,/\D/g,+) ),%r %r $str($chr(32) %l $+ $1,$calc(%n /$1)) $iif($calc(%n % $1),%l $+ $v1)
dec %x
}
return %r
}