我如何以编程方式在PHP中创建像ABCD1234这样的唯一代码

时间:2014-06-01 18:34:49

标签: php math unique probability

我需要以编程方式创建四个字符和四个数字标识符(如ABCD1234)的唯一代码组合。那么我怎么做这个组合中有多少可能的代码。

2 个答案:

答案 0 :(得分:1)

假设您只使用大写字母:

英文字母中有26个字母,0-9中有10个字母。四个字母后跟4位数的组合数为26 4 * 10 4 ,其中4569760000。

在php中,您可以像这样生成它:

function generateCode()
{
    $code = '';
    for ($i = 0; $i < 4; ++$i) {
        $code .= chr(mt_rand(65, 90)); // A-Z
    }
    for ($i = 0; $i < 4; ++$i) {
        $code .= mt_rand(0, 9);
    }
    return $code;
}

答案 1 :(得分:1)

你可以用C#这样做;

namespace GenerateRandom
{
    public class MainClass
    {
        private static Random random = new Random();
        public static int RandomNumber(int min, int max)
        {
            return random.Next(min, max);
        }

        public static string RandomString(int size, bool lowerCase)
        {
            StringBuilder builder = new StringBuilder();
            Random random = new Random();
            char ch;
            for (int i = 0; i < size; i++)
            {
                ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
                builder.Append(ch);
            }
            if (lowerCase)
                return builder.ToString().ToLower();
            return builder.ToString();
        }

        public static string GetPassword()
        {
            StringBuilder builder = new StringBuilder();
            builder.Append(RandomString(4, false));
            builder.Append(RandomNumber(1000, 9999));
            return builder.ToString();
        }

        static void Main()
        {
            //Each time it will be changing.
            string randomValue = GetPassword();//YOUR FINAL OUTPUT WILL BE IN randomValue variable.
        }
    }
}