6位邀请码生成

背景:
邀请是一种常见的裂变方式,这里生成全局唯一的6位邀请码。
思路:
由 0-9 加上24个大写字母(去掉容易混淆的IO)组成的6位邀请码最多可以6^34种组合, 大概在15亿。

  1. 对34重复取余,将余数作为字符数组的下标追加到邀请码的最后
  2. 超过6位去除多余的部分, 不足6位用字符数组的某一位补充
class InvitationCodeService

  CODE_SIZE = 6

  # num一般为member_user_id
  def self.generate num
    str = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ"
    res = ""

    while num > 0
      tmp = num % 34
      num = num / 34
      res << str[tmp]
    end

    if res.size > CODE_SIZE
      res[0..5]
    elsif res.size == CODE_SIZE
      res
    else
      str[0] * (CODE_SIZE - res.size) << res
    end
  end

end
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,801评论 0 10
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,281评论 0 3
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,391评论 0 2
  • 第五章******************************************************...
    fastwe阅读 695评论 0 0
  • 今日状态不佳,可能因为连着两天没休息好,精神亢奋中带着恍惚。亢奋是因为工作任务突然加重,恍惚是头脑发懵,不知自己身...
    Depressed猪阅读 620评论 0 50