Name: Anonymous 2011-10-13 23:17
Can you tell from these codes:
function NumeralBase(base_str){
if (base_str.length < 2) {
throw "Base must be at least 2";
}
this.base = base_str.split('');
}
NumeralBase.prototype.encode = function(chr){
var code = chr.charCodeAt(0);
var blen = this.base.length;
var encoded = ''; var c;
for(c = code; c > 0; c = Math.floor(c / blen)){
encoded = this.base[c % blen] + encoded;
}
return encoded;
}
String.prototype.encode = function(nbase){
if (nbase != '(.)') {
var base = new NumeralBase(nbase);
return this.split("").map(function(x){return base.encode(x)}).join(' ')
}
var x = [];
for(var i = 0; i < 3; i++){
for(var j = 0; j < 3; j++){
if (i == j) continue;
for(var k = 0; k < 3; k++){ if (k == i || k == j) continue;
var base = new NumeralBase(nbase[i]+nbase[j]+nbase[k]); x[x.length] = this.split("").map(function(x){return base.encode(x)}).join(' ')
}
}
}
x.sort(function(y){var c = y.match(/\( ?\. ?\) ?\( ?\. ?\)/g); return c ? c.length : 0});
return x[x.length - 1];
}