为了对日历的每一行进行颜色编码,我希望能够使用字段userid创建1到9的唯一整数。我需要使用日历另一部分的颜色来显示分配给教师的学生。
请记住,userID可以是任意长度。
起初我想过使用最低有效数字,但这不适用于用户ID 01,21,22等。
然后我考虑将左侧添加到右侧,例如userID 22 = 2 + 2 = 4,但这也不起作用。
如何根据用户ID创建一个唯一的0-9整数?
答案 0 :(得分:4)
如果N大于9,任何函数映射[0..N]到[1..9]都会发生冲突,因此不存在唯一映射它们的方案。
如果您之前没有看过此用户ID,那么您可以执行的操作就是通过用户ID并为其分配下一个免费号码。这是一个简单的for-loop +数组。
伪代码:
colors = array()
for userid in userids_to_color:
if userid not in colors:
colors[count(colors)] = userid
然后,颜色是用户标识的映射索引(=颜色编号)。如果count(colors)
变得大于你的最大颜色数,你可以摆脱循环。