http://www.republicof3.com/how-to-generate-unique-promotion-discount-codes-in-php/
我找到了一个在PHP中生成唯一促销代码的函数
但是存在一个很大的问题,如果要生成的代码数量多于剩余组合的数量(所有组合长度为exclude_codes_array),则该函数将变为无限循环。
例如:如果$ characters =“0A”;组合为“00”,“0A”,“A0”,“AA”= 4,如果$ no_of_codes> 4,则循环无法停止。
所以我想在循环之前检查代码的数量和所有剩余的代码组合,如何计算字符串的组合?
答案 0 :(得分:2)
根据您为A0计算的内容。
AA, 00 , A0, 0A
概括和使用基本排列和组合应该是,
2^{strlen($str)};
答案 1 :(得分:1)
离散数学
available chars = 2 ("A", "0")
available spaces = 2 ("**")
chasr ^ spaces = 4
available chars = 2 ("A", "0")
available spaces = 3 ("***")
chars ^ spaces = 8
available chars = 3 ("A", "B", "0")
available spaces = 2 ("**")
chars ^ spaces = 9