-
The repetition of each digit in the whole number cannot be more than twice.
- For example, the number
23242
is not allowed because the digit2
appears three times.
- For example, the number
-
Only one digit can appear twice in the whole number; the rest of the digits cannot be repeated.
- For example, the number
2332
is not allowed.
- For example, the number
-
Only two consecutive digits are allowed.
- For example, the numbers
232
or234
are not allowed, but235
is allowed.
- For example, the numbers
-
Consecutive numbers next to each other can appear only once in the whole number.
- For example, in the number
2354
,2
and3
are next to each other and4
and5
are next to each other, which is not allowed!
- For example, in the number
composer require https://packagist.org/packages/am-mokhtari/numeric_code
Use the static function generate() and provide the desired format, like the code below:
$string_code = NumericCode::generate(5);
The output will be something like:
35634
Or
$string_code = NumericCode::generate(4);
The output will be something like:
3198
This test generates 1000 numeric codes without failure. (100,000 have also been tested)
<?php
require_once "./vendor/autoload.php";
use AmMokhtari\NumericCode\NumericCode;
$start = microtime(true);
for ($i = 0; $i < 1_000; $i++){
try {
NumericCode::generate(8); // Generate an 8-digit code
} catch (Exception $e) {
echo "Error: " . $e->getMessage() . " <br>";
}
}
$end = microtime(true);
$executionTime = $end - $start;
echo "Execution Time: " . number_format($executionTime, 6) . " seconds <br>";
-
تعداد تکرار هر رقم در کل عدد نمیتواند بیش از دو مرتبه باشد.
- مثلا عدد
۲۳۲۴۲
چون سه مرتبه عدد۲
ظاهر شده مجاز نیست.
- مثلا عدد
-
فقط یک رقم میتواند در کل عدد دو مرتبه ظاهر شود و باقی ارقام مجاز به تکرار نیستند.
- مثلا عدد
۲۳۳۲
مجاز نیست.
- مثلا عدد
-
فقط دو رقم متوالی در کنار هم مجاز هستند.
- مثلا عدد
۲۳۲
یا۲۳۴
مجاز نیستند ولی۲۳۵
مجاز است
- مثلا عدد
-
اعداد متوالی در کنار هم فقط یکبار میتوانند در کل عدد ظاهر شوند
- مثلا، در عدد
۲۳۵۴
چون۲
و۳
کنار هم و۴
و۵
کنار یکدیگر هستند و مجاز نیست!
- مثلا، در عدد
composer require https://packagist.org/packages/am-mokhtari/numeric_code
از تابع استاتیک generate() استفاده کنید و قالب مورد نظر را به آن بدهید، مثل کد زیر:
$string_code = NumericCode::generate(5);
خروجی چیزی شبیه به این خواهد بود:
35634
یا
$string_code = NumericCode::generate(4);
خروجی چیزی شبیه به این خواهد بود:
3198
این تست 1000 کد عددی را بدون شکست تولید می کند. (100000 هم تست شده)
<?php
require_once "./vendor/autoload.php";
use AmMokhtari\NumericCode\NumericCode;
$start = microtime(true);
for ($i = 0; $i < 1_000; $i++){
try {
NumericCode::generate(8); // Generate an 8-digit code
} catch (Exception $e) {
echo "Error: " . $e->getMessage() . " <br>";
}
}
$end = microtime(true);
$executionTime = $end - $start;
echo "Execution Time: " . number_format($executionTime, 6) . " seconds <br>";