JSFiddle - React, Tailwind, and code Playground
by dmelnik
CoffeeScript
purchases = _.shuffle [1..100]
iteration = ->
current = []
empty = _.shuffle [1..100]
mistakesCount = 0
_.each purchases, (item, key) ->
if !key
current.push empty.shift()
else
if current.indexOf(item) == -1
current.push(item)
_.remove empty, (emptyItem) -> item == emptyItem
else
mistakesCount++
current.push empty.shift()
{ log: _.last(current) == _.last(purchases), mistakesCount: mistakesCount }
result = []
_.each [1..10000], ->
result.push iteration()
console.log _.countBy result, 'log'
console.log _.chain(result).pluck('mistakesCount').reduce(((sum, n) -> sum + n), 0) / 10000