如何正确的起ID
进入一个新系统的时候,第一件事就是取名字。ID分为两部分,uname和uid。uname是名字,可能是唯一的;uid一般是累加的数字,或者一串字母,一定是唯一的。那么,如何正确的取ID呢?
uname
拿域名举例。域名是要真金白银的去买的,我们可以看看价高的域名有什么特点。简单来说,长度越短、后缀越好(.com是最好的)、发音的音节越少(两个音节最佳)、和现实中的词语越相关的域名越贵。比如我这个网站:bestcoder.cn,言简意赅,就是顶尖研发,是个不可多得的好域名。
那么,什么样的词比较常见呢?这涉及到自然语言处理中的词频统计。你可以把所有的中文语料(或者某个行业的)做一个词频统计。然后就能得到词频的列表。高频词就是好ID。
词频统计伪代码
Function CountWordFrequency(input_text):
# Step 1: Initialize an empty dictionary to store word counts
word_count = {}
# Step 2: Preprocess the input text
input_text = input_text.lower() # Convert all text to lowercase
input_text = RemovePunctuation(input_text) # Remove punctuation
# Step 3: Split the text into words
word_list = SplitTextIntoWords(input_text) # Split by spaces or delimiters
# Step 4: Count word frequencies
For each word in word_list:
If word is not in word_count:
word_count[word] = 1 # Initialize count for new word
Else:
word_count[word] += 1 # Increment count for existing word
# Step 5: Return the word frequency dictionary
Return word_count
如果为了吸引人的注意,还需要考虑排序规则。比如马云曾经说,阿里巴巴为什么是个好品牌。因为alibaba的首字母是A,字母序永远排在网页的第一份。就像你列表里的AAAAA建材王哥是一样的。
另一个就是对当下的热词蹭热度、蹭车、蹭流量。当然不火也可以蹭。我不知道大家有没有注意微博上多了一些人。他们顶着你好友的ID,然后后面加一个~或者_的后缀,然后骗人。我不了解他们,但是这一定是一种成熟的灰产。
uid
uid一般就是数字和字母。一般是10~12位,对应的就是十亿到千亿范围的数字。在随机数中,什么样的数字比较好呢?
根据本福特定律,以1为首位数字的数的出现概率约为总数的三成,接近直觉得出之期望1/9的3倍。推广来说,越大的数,以它为首几位的数出现的概率就越低。
所以,显而易见,越小的数字越好。因为越小的数字出现的概率越大,相当于高频。
在此基础上,连号的数字、整数(比如10000)、递增或者递减的数字(顺子)也是好的。因为比较好记。
除此之外,还有幸运数字。在中文中,8、6、9都是好数字,4和13都是不好的数字。
还有一些赋予了特别含义的数字,比如谐音,或者是在某些领域比较常见的参数,也是好的。比如365、1024、2048、1314都是好的数字。
我跑了一个幸运数字的脚本。根据我的计算,一亿以内的好数字,有92万个,也就是0.92%,即1%左右的数字是好数字。这是不是也暗示着99%的人都是普通的,只有1%的人能够脱颖而出呢?
点开查看代码
import re
def is_lucky(number):
"""
判断一个数字是否是幸运数字。
"""
num_str = str(number)
num_len = len(num_str)
# 连号 > 数字长度的 80%
required_length = max(1, -(-num_len * 80 // 100)) # 取上限,超过 80% 条件
if any(len(set(num_str[i:i+required_length])) == 1 for i in range(num_len - required_length + 1)):
return True
# 顺子必须 > 数字长度的 80%,且出现在数字的头部或尾部
ascending_seq = "0123456789"[:required_length]
descending_seq = "9876543210"[:required_length]
if num_str[:required_length] in (ascending_seq, descending_seq) or num_str[-required_length:] in (ascending_seq, descending_seq):
return True
# 带有超过数字长度 80% 的 8、6、9
if sum(1 for ch in num_str if ch in '869') >= required_length:
return True
# 包含特定幸运数字或吉利数字,并且幸运数字的占比必须超过数字长度的一半
lucky_patterns = ["520", "1024", "2048", "1314", "888", "666", "999"]
total_lucky_length = sum(len(pattern) * num_str.count(pattern) for pattern in lucky_patterns)
if total_lucky_length > num_len // 2:
return True
# 整个数字必须是回文数字
if num_str == num_str[::-1]:
return True
return False
def count_lucky_numbers(start, end, output_file):
"""
计算范围内的幸运数字数量,并将其打印到文件。
"""
lucky_count = 0
with open(output_file, 'w') as file:
for num in range(start, end):
if is_lucky(num):
lucky_count += 1
file.write(f"{num}\n")
return lucky_count
if __name__ == "__main__":
start = 0
end = 10**6
output_file = "lucky_numbers.txt"
# 为了避免长时间运行,可以分批运行,或先尝试较小范围,例如 0 到 10^6 100000
print("幸运数字数量:", count_lucky_numbers(start, 10**9, output_file))
对于字母,同样也有字母频率。更多的是看英文单词的词频、特殊含义。
对于6位以内的字母组合(比如车牌号),我也计算了一下,单词的占比只占0.18%,也就是只有0.18%的组合才是单词,才是好ID。
点开查看代码
from math import factorial
# Function to calculate permutations (P(n, k))
def permutations(n, k):
return factorial(n) // factorial(n - k)
# Function to calculate combinations (C(n, k))
def combinations(n, k):
return factorial(n) // (factorial(k) * factorial(n - k))
# Number of letters in the alphabet
n = 26
# Calculate total permutations and combinations for 1 <= k <= 6
total_permutations = sum(permutations(n, k) for k in range(1, 7))
total_combinations = sum(combinations(n, k) for k in range(1, 7))
# Calculate ratio
ratio = total_combinations / total_permutations
total_permutations, total_combinations, ratio
另外就是英文的缩写。各行各业的缩写。
最后总结一下。ID是一种自然资源,有一些ID就是比别的好。但是现在的这个游戏——地球online上面的ID,已经被占用的差不多了。你可以回想一下,任何一种动物,是不是都有了对应的品牌?任何一个单词,都有对应的公司?甚至是你小学课本上看到的故事、听过的儿歌,都和商业绑定在了一起。
也就是说,利用ID和现实事物的映射,能够提升品牌的知名度。抢占ID,其实是抢占心智的一部分。ID是一种自然资源,但是已经被前人开采的差不多了。
最后,告诉大家一个秘密:注册账号不要钱。如果你觉得自己的账号ID不好,你可以再注册一个。只要你愿意,大可注册个几十个。更深层的秘密是,生孩子也不要钱,上户口、创建身份证号本身没有成本,只要你能找到女人愿意跟你生就行。但是我们大部分的人就像随机的ID一样。很不起眼,也没有太多幸运,不能在人群中脱颖而出。如果能再来一次,还是搞一个好的ID。
最后更新于 2025年1月6日 by qlili