1

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,则无法停止循环。

所以我想在循环之前检查代码的数量和所有剩余的代码组合,如何计算字符串的组合?

4

2 回答 2

2

根据您为 A0 计算的内容。

AA, 00 , A0, 0A 

概括和使用基本的排列和组合应该是,

2^{strlen($str)};
于 2013-09-15T14:32:53.200 回答
1

离散数学

available chars = 2 ("A", "0")
available spaces = 2 ("**")

字符 ^ 空格 = 4

available chars = 2 ("A", "0")
available spaces = 3 ("***")

字符^空格 = 8

available chars = 3 ("A", "B", "0")
available spaces = 2 ("**")

字符^空格 = 9

于 2013-09-15T14:35:18.820 回答