*精简了一下(各符号由空格相隔,以下以7个不同符号为例):
clear
loc w="a b c d e f g"
loc n=wordcount("`w'")
loc m=2^`n'
set ob `m'
g y=""
foreach i of loc w{
loc n=`n'-1
replace y=y+cond(mod(int((_n-1)/2^`n'),2),word("`w'",`n'+1),"")
}
l
*利用二进制数的特点
clear
loc w="a b c d e f g"
loc n=wordcount("`w'")
set ob `=2^`n''
g y=""
forv i=1/`n'{
replace y=y+cond(mod(int((_n-1)/2^(`i'-1)), 2),word("`w'",`i'),"")
}
n l