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