11![ Imgur] ( https://i.imgur.com/Yrywt79.jpg )
22
3-
4-
53# Description
64
75### This package helps you create non-guessable and non-simple numeric codes.
119### The numbers created by this package meet the following conditions:
1210
1311- The repetition of each digit in the whole number cannot be more than twice.
14-
12+
1513 - For example, the number ` 23242 ` is not allowed because the digit ` 2 ` appears three times.
1614
1715- Only one digit can appear twice in the whole number; the rest of the digits cannot be repeated.
18-
16+
1917 - For example, the number ` 2332 ` is not allowed.
2018
2119- Only two consecutive digits are allowed.
22-
20+
2321 - For example, the numbers ` 232 ` or ` 234 ` are not allowed, but ` 235 ` is allowed.
2422
2523- Consecutive numbers next to each other can appear only once in the whole number.
26-
24+
2725 - For example, in the number ` 2354 ` , ` 2 ` and ` 3 ` are next to each other and ` 4 ` and ` 5 ` are next to each other, which is not allowed!
2826
29- ---
27+ ----
3028
3129# How to Use
3230
@@ -58,6 +56,34 @@ The output will be something like:
5856
5957----
6058
59+ # Speed Test
60+
61+ #### To test the execution time, create a php file and run this code:
62+
63+ This test generates 1000 numeric codes without failure. (100,000 have also been tested)
64+
65+ ``` php
66+ <?php
67+
68+ require_once "./vendor/autoload.php";
69+
70+ use AmMokhtari\NumericCode\NumericCode;
71+
72+ $start = microtime(true);
73+ for ($i = 0; $i < 1_000; $i++){
74+ try {
75+ NumericCode::generate(8); // Generate an 8-digit code
76+ } catch (Exception $e) {
77+ echo "Error: " . $e->getMessage() . " <br >";
78+ }
79+ }
80+ $end = microtime(true);
81+ $executionTime = $end - $start;
82+ echo "Execution Time: " . number_format($executionTime, 6) . " seconds <br >";
83+ ```
84+
85+ ---
86+
6187----
6288
6389----
@@ -70,27 +96,20 @@ The output will be something like:
7096
7197### اعدادی که توسط این پکیج ساخته میشوند شرط های زیر را پاس میکنند:
7298
73-
7499- تعداد تکرار هر رقم در کل عدد نمیتواند بیش از دو مرتبه باشد.
75-
100+
76101 - مثلا عدد ` ۲۳۲۴۲ ` چون سه مرتبه عدد ` ۲ ` ظاهر شده مجاز نیست.
77102
78-
79-
80103- فقط یک رقم میتواند در کل عدد دو مرتبه ظاهر شود و باقی ارقام مجاز به تکرار نیستند.
81-
104+
82105 - مثلا عدد ` ۲۳۳۲ ` مجاز نیست.
83106
84-
85-
86107- فقط دو رقم متوالی در کنار هم مجاز هستند.
87-
108+
88109 - مثلا عدد ` ۲۳۲ ` یا ` ۲۳۴ ` مجاز نیستند ولی ` ۲۳۵ ` مجاز است
89110
90-
91-
92111- اعداد متوالی در کنار هم فقط یکبار میتوانند در کل عدد ظاهر شوند
93-
112+
94113 - مثلا، در عدد ` ۲۳۵۴ ` چون ` ۲ ` و ` ۳ ` کنار هم و ` ۴ ` و ` ۵ ` کنار یکدیگر هستند و مجاز نیست!
95114
96115---
@@ -122,3 +141,31 @@ $string_code = NumericCode::generate(4);
122141خروجی چیزی شبیه به این خواهد بود:
123142
124143> 3198
144+
145+ ---
146+
147+ # تست سرعت
148+
149+ #### برای تست مدت زمان اجرا، یک فایل php ایجاد کنید و این کد را اجرا کنید:
150+
151+ این تست 1000 کد عددی را بدون شکست تولید می کند. (100000 هم تست شده)
152+
153+ ``` php
154+ <?php
155+
156+ require_once "./vendor/autoload.php";
157+
158+ use AmMokhtari\NumericCode\NumericCode;
159+
160+ $start = microtime(true);
161+ for ($i = 0; $i < 1_000; $i++){
162+ try {
163+ NumericCode::generate(8); // Generate an 8-digit code
164+ } catch (Exception $e) {
165+ echo "Error: " . $e->getMessage() . " <br >";
166+ }
167+ }
168+ $end = microtime(true);
169+ $executionTime = $end - $start;
170+ echo "Execution Time: " . number_format($executionTime, 6) . " seconds <br >";
171+ ```
0 commit comments