Your formula is a slick way to address the problem you mention and seems like a better way to determine what should be reviewed. I have used this approach and updated the page that has the results.

Click http://primepuzzle.com/tunxis/mml.data.html to see the results. The last column of the results page lists what quiz problems to review. The most important ones are at the top of the list.

I measured the data using JavaScript.

<script>
ratio=[
'23.0/28',
'17.0/21',
'10.0/13',
'6.0/13',
'15.0/23',
'17.0/25',
'10.0/24',
'10.0/18',

etc.

'6.0/12',
'3.0/9',
'14.0/17',
'6.0/20',
'3.0/11',
'10.0/18'
]

M=0

for (i=0;i<ratio.length;++i) { // calculate M, the maximum number of times a question is given
 attempts=eval(ratio[i].substr(ratio[i].indexOf('/')+1))
 if (attempts>M) M=attempts
 }

var foo = new Array()

// right/attempts+(M-attempts)*(1-right/attempts)/M

for (i=0;i<ratio.length;++i) {
 ratiov=eval(ratio[i])
 attempts=eval(ratio[i].substr(ratio[i].indexOf('/')+1))
 foo[i]=ratiov+(M-attempts)*(1-ratiov)/M+'#'+Number(i+1)
 document.write(foo[i]+'<br>')
 }
</script>

The challenge to the not just tiny-c Programming Group: read the quiz data, use the function in red (Pythonized) to rate the quiz questions and sort the results.

http://primepuzzle.com/py/ratios.html