-
The repetition of each digit in the whole number cannot be more than twice.
- For example, the number
23242is not allowed because the digit2appears 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
2332is not allowed.
- For example, the number
-
Only two consecutive digits are allowed.
- For example, the numbers
232or234are not allowed, but235is 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,2and3are next to each other and4and5are next to each other, which is not allowed!
- For example, in the number
composer require am-mokhtari/numeric-codeUse 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>";