11222333-9


Ruby 1.8: ([*0..9]+['K'])[rut.reverse.chars.inject([0,0]){|(i,a),n|[i+1,a-n.to_i*(i%6+2)]}[1]%11]
Ruby 1.9: [*0..9,'K'][rut.reverse.chars.inject([0,0]){|(i,a),n|[i+1,a-n.to_i*(i%6+2)]}[1]%11]

Créditos a Guillermo Campos por tomar la fórmula anterior de 88 carácteres y dejarla en 83 (septiembre 2013).

La de 88 carácteres: [*0..9,'K',0][11-rut.reverse.chars.inject([0,0]){|(i,a),n|[i+1,a+n.to_i*(i%6+2)]}[1]%11]