Created
October 13, 2011 09:16
-
-
Save uu59/1283818 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -- coding: utf-8 | |
=begin | |
http://ameblo.jp/shibuya/entry-11045885401.html | |
・下位5%をD評価とする | |
・D評価1回でイエローカード、2回目でレッドカードとなり、2回目で部署異動または退職勧奨のいずれか | |
このルールで何回目の査定で従業員が0になるか(D評価をつけるべき人がいなくなるか)を計算するスクリプト | |
=end | |
# http://ja.wikipedia.org/wiki/%E3%82%B5%E3%82%A4%E3%83%90%E3%83%BC%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88 | |
members = (1..796).to_a | |
d_count = {} | |
d_count.default = 2 | |
loop.with_index do |_,n| | |
n += 1 | |
puts "査定第#{n}回開始 残従業員数#{members.length}" | |
members.sort_by{rand}.take((members.length / 20.0).ceil).each{|n| | |
if (d_count[n] -= 1) == 0 | |
if rand(2) == 0 | |
members.delete(n) # fired | |
d_count.delete(n) | |
else | |
d_count[n] = 2 # 人事異動でD評価もリセット、残留 | |
end | |
end | |
} | |
if members.length == 0 | |
puts "="*80 | |
puts "#{n}回目の査定において、D評価をつけるべき人がいなくなりました。" | |
break | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment