يعد إنشاء سلسلة عشوائية عملية مهمة في العديد من البرامج. قد تحتاج إلى إنشاء كلمة مرور عشوائية أو إنشاء معرف فريد أو اختبار خوارزميات معالجة السلسلة. هناك عدة طرق لإنشاء سلسلة عشوائية في لغة البرمجة ج ، وفي هذا الدليل سنلقي نظرة على أبسطها.
لإنشاء سلسلة عشوائية في ج ، سوف نستخدم وظيفة راند () من ستدليب.مكتبة ح. وظيفة راند() يولد رقم عشوائي ، وسوف نستخدمها لتوليد أحرف السلسلة. ولكن أولا نحن بحاجة إلى تهيئة مولد رقم عشوائي. للقيام بذلك ، ونحن ندعو وظيفة سراند () وتمريرها في الوقت الحالي.
# تشمل
# تشمل
# تشمل
بعد تهيئة مولد الأرقام العشوائية ، يمكننا البدء في إنشاء سلسلة عشوائية. للقيام بذلك ، إنشاء مجموعة من الأحرف وملء مع أحرف عشوائية. سنستخدم رموز الأحرف من 32 إلى 126 ، مما سيسمح لنا بإنشاء أحرف عشوائية ، بما في ذلك المسافات والحروف والأرقام والأحرف الخاصة.
نتيجة لتنفيذ البرنامج ، سوف نحصل على سلسلة عشوائية يمكن استخدامها في مشروعنا. الآن أنت تعرف كيفية إنشاء سلسلة عشوائية في ج مع دليل بسيط!
- توليد حرف عشوائي
- إنشاء سلاسل عشوائية بأطوال مختلفة
- إضافة أحرف عشوائية إلى سلسلة
- إنشاء سلسلة عشوائية من مجموعة معينة من الأحرف
- التحقق من عشوائية السلسلة التي تم إنشاؤها
- سؤال وجواب
- كيف يمكنني إنشاء سلسلة عشوائية في ج?
- هل هناك وظيفة مدمجة لإنشاء سلسلة عشوائية في ج?
- أي نوع من البيانات هو أفضل لاستخدام لتخزين سلسلة عشوائية في ج?
- ما هو طول سلسلة العشوائية التي يمكن إنشاؤها باستخدام راند () وظيفة في ج?
- هل من الممكن إنشاء سلسلة عشوائية من طول معين في ج?
توليد حرف عشوائي
تلعب القدرة على إنشاء أحرف عشوائية دورا مهما في العديد من حلول البرامج. يمكن استخدام هذه الرموز لإنشاء كلمات مرور عشوائية أو إنشاء أرقام عشوائية أو لأغراض لعب مختلفة.
في لغة البرمجة ج ، يمكنك استخدام وظيفة راند () لتوليد أرقام عشوائية. ومع ذلك ، فإن بعض تحويل الأرقام العشوائية إلى رموز ضروري لإنشاء أحرف عشوائية.
مثال على رمز ج لتوليد سلسلة عشوائية من الأحرف:
# تشمل
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
سراند (الوقت (فارغ));
سلسلة عشوائية شار [10];
ل (إنت أنا = 0 ؛ أنا < 10 ؛ أنا {) {
سلسلة عشوائية [أنا] = ' أ ' + (راند ()%26);
}
سلسلة عشوائية [10] = '\ 0';
برينتف ("سلسلة عشوائية من الأحرف: ٪ س
"،سلسلة عشوائية);
العودة 0;
}
في هذا المثال ، يتم استخدام وظيفة سراند () لتهيئة مولد رقم عشوائي على أساس الوقت الحالي. ثم يتم إنشاء الأحرف باستخدام التعبير ' أ ' + (راند () ٪ 26) ، حيث 'أ' هو الحرف الأولي و 26 هو عدد الأحرف.
مثال إخراج البرنامج:
سلسلة عشوائية من الأحرف: كبنفغبدفك
وبالتالي ، باستخدام الرمز المحدد ، يمكنك إنشاء سلسلة عشوائية من الأحرف بطول معين.
إنشاء سلاسل عشوائية بأطوال مختلفة
لإنشاء سلاسل عشوائية بأطوال مختلفة في لغة البرمجة سي ، يمكننا استخدام وظائف لإنشاء أرقام عشوائية وعمليات بأحرف.
لنفترض أننا بحاجة إلى إنشاء سلسلة عشوائية من 5 إلى 10 أحرف. يمكننا استخدام الخوارزمية التالية:
- وضعنا متغير لتخزين طول السلسلة واستخدام وظيفة لتوليد رقم عشوائي في نطاق معين.
- إنشاء مجموعة من الأحرف ، والتي ستخزن الأحرف التي ستتألف منها السلسلة.
- نستخدم حلقة لإنشاء سلسلة عشوائية عن طريق تحديد أحرف عشوائية من مصفوفة وإضافتها إلى نهاية السلسلة.
- نقوم بتعيين حرف فارغ إلى سطر النهاية لإكمال السطر.
يوجد أدناه مثال على رمز يوضح تنفيذ هذه الخوارزمية:
# تشمل
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
طول كثافة العمليات, أنا;
char characters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
srand(time(0));
length = rand() % 6 + 5;
char randomString[length + 1];
for(i = 0; i < length; i++) {
randomString[i] = characters[rand() % (sizeof(characters) - 1)];
}
randomString[length] = '\0';
printf("Сгенерированная случайная строка: %s
", randomString);
return 0;
}
نتيجة لتنفيذ هذا الرمز ، سنحصل على سلسلة عشوائية ، يختلف طولها من 5 إلى 10 أحرف. لاحظ أنه للعمل مع توليد الأرقام العشوائية ، نستخدم المكتبات و .
يمكنك تغيير الأحرف التي سيتم إنشاء سلسلة عشوائية منها ، على سبيل المثال عن طريق إضافة أحرف ترقيم أو أحرف خاصة.
إذا كنت بحاجة إلى تغيير نطاق طول سلسلة عشوائية ، يمكنك تغيير تهيئة متغير الطول ووسيطات وظيفة راند () لإنشاء رقم عشوائي. على سبيل المثال ، بالنسبة لسلسلة يتراوح طولها بين 3 و 8 أحرف ، يمكنك استخدام الكود التالي:
الطول = راند () %6 + 3;الآن يمكنك بسهولة إنشاء سلاسل عشوائية من أطوال مختلفة في لغة البرمجة ج!
إضافة أحرف عشوائية إلى سلسلة
لإضافة أحرف عشوائية إلى سلسلة في ج ، يمكنك استخدام وظيفة راند () ، الذي يولد رقم عشوائي. ويمكن بعد ذلك تحويل هذا الرقم العشوائي إلى حرف باستخدام وظيفة (شار). يوجد أدناه نموذج رمز يوضح كيف يمكن القيام بذلك:
# تشمل
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شارع شار [100] = " مرحبا ، العالم!";
الباحث الأول ، ن;
سراند (الوقت (0)) ؛ / / تهيئة مولد الأرقام العشوائية
برينتف ("سلسلة المصدر: ٪ س
"،شارع);
برينتف ("أدخل عدد الأحرف العشوائية لإضافة:");
سكانف ("٪د " ، & ن);
إلى عن على (أنا = 0 ؛ أنا < ن ؛ أنا i) {
شارع [أنا + 13] = (شار) (راند () ٪ 26 + 'أ') ؛ / / توليد حرف عشوائي من ' أ 'إلى'ض'
}
برينتف ("سلسلة بعد إضافة أحرف عشوائية: ٪ ق
"،شارع);
العودة 0;
}
في هذا المثال ، يقوم البرنامج بتهيئة مولد الأرقام العشوائية أولا باستخدام الوقت الحالي. ثم يطلب من المستخدم إدخال عدد الأحرف العشوائية المراد إضافتها إلى السلسلة. في الحلقة ، يتم إنشاء عدد محدد من الأحرف العشوائية وإضافتها إلى السلسلة بدءا من الموضع 13 (على سبيل المثال). وأخيرا ، يتم عرض النتيجة على الشاشة.
إنشاء سلسلة عشوائية من مجموعة معينة من الأحرف
في بعض الأحيان يكون من الضروري إنشاء سلسلة عشوائية من مجموعة معينة من الأحرف. على سبيل المثال ، لإنشاء كلمة مرور أو معرف فريد. في هذه المقالة ، سنلقي نظرة على طريقة بسيطة لإنشاء مثل هذه السلسلة باستخدام لغة البرمجة سي.
أولا ، دعنا نحدد مجموعة الأحرف التي ستتألف منها سلسلة عشوائية. يمكنك استخدام أي أحرف أسي ، ولكن على سبيل المثال ، سوف نختار فقط الأرقام والحروف اللاتينية (صغيرة وكبيرة).
- مجموعة الأحرف:
# تشمل
# تشمل
# تشمل
شار * سلسلة عشوائية (طول كثافة العمليات ،كونست شار * محارف) {
سراند (الوقت (فارغ));
شار * النتيجة = مالوك ((الطول + 1) * حجم (شار));
إنت تشارسيت_لنغث = سترلين (محارف);
ل (إنت أنا = 0 ؛ أنا < طول ؛ أنا i) {
إنت عشوائي _ مؤشر = راند () ٪ تشارسيت_لنغث;
النتيجة [أنا] = محارف [مؤشر عشوائي];
}
نتيجة [طول] = '\ 0';
نتيجة الإرجاع;
}
.
Для тестирования функции можно использовать следующий код:
int main() {
const char *charset = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
char *random_str = random_string(10, charset);
printf("Random string: %s
", random_str);
free(random_str);
return 0;
}
.
لإنشاء سلاسل عشوائية من مجموعة معينة من الأحرف في مشاريع ج الخاص بك.
التحقق من عشوائية السلسلة التي تم إنشاؤها
بعد إنشاء سلسلة عشوائية في ج ، من الضروري التحقق من العشوائية. بعد كل شيء ، يمكن أن يؤدي التنفيذ غير الصحيح للخوارزمية إلى نتائج يمكن التنبؤ بها ، مما يجعل السلسلة غير عشوائية.
يمكن استخدام الطرق التالية للتحقق من عشوائية السلسلة:
- التحليل الإحصائي-باستخدام اختبارات إحصائية مختلفة ، من الممكن تقييم درجة توحيد توزيع الأحرف في سلسلة. سيحدد هذا مدى عشوائية السلسلة.
- يتم إجراء الاختبارات الوظيفية بناء على السلوك المتوقع للسلسلة. على سبيل المثال ، يمكنك التحقق من أن السلسلة لا تحتوي على أحرف مكررة أو أن الأحرف موزعة بالتساوي.
- تستخدم اختبارات التشفير لتقييم عشوائية السلسلة من وجهة نظر أمان التشفير. تتضمن هذه الاختبارات تحليل توزيع البت والتحقق من خصائص الأرقام العشوائية.
في الممارسة العملية ، يوصى باستخدام مجموعة من الاختبارات المختلفة للحصول على التقدير الأكثر دقة لعشوائية السلسلة التي تم إنشاؤها.
إذا فشلت سلسلة في اختبار عشوائي واحد أو أكثر ، فقد تحتاج إلى تغيير الخوارزمية لإنشاء سلسلة عشوائية أو إجراء معالجات إضافية بالقيم الناتجة.
| الرمز | الكمية | الكمية المتوقعة | الفرق |
|---|---|---|---|
| هو | 20 | 25 | -5 |
| b | 18 | 25 | -7 |
| c | 27 | 25 | 2 |
في المثال أعلاه ، يمكنك أن ترى أن الحرفين" أ "و" ب "يحدثان في السلسلة بتردد أقل من المتوقع ، بينما يحدث الحرف" ج " بتردد أعلى. قد تكون هذه علامة على توزيع الأحرف غير المتكافئ وتشير إلى أن السلسلة التي تم إنشاؤها ليست عشوائية.
سؤال وجواب
كيف يمكنني إنشاء سلسلة عشوائية في ج?
في ج ، يمكنك إنشاء سلسلة عشوائية باستخدام وظيفة راند (). تقوم هذه الوظيفة بإرجاع رقم عشوائي زائف يمكن تحويله إلى حرف وإضافته إلى سلسلة. يوجد أدناه مثال على الكود:
هل هناك وظيفة مدمجة لإنشاء سلسلة عشوائية في ج?
لا توجد وظيفة في المكتبة القياسية ج التي يمكن أن تخلق مباشرة سلسلة عشوائية. ومع ذلك ، يمكنك استخدام وظيفة راند() لإنشاء رقم عشوائي وتحويله إلى حرف لإضافته إلى السلسلة.
أي نوع من البيانات هو أفضل لاستخدام لتخزين سلسلة عشوائية في ج?
لا يوجد نوع بيانات خاص في ج لتخزين السلاسل. عادة ما يتم تمثيل السلاسل بمصفوفات من الأحرف. حتى تتمكن من استخدام نوع البيانات شار لتخزين سلسلة عشوائية.
ما هو طول سلسلة العشوائية التي يمكن إنشاؤها باستخدام راند () وظيفة في ج?
تقوم دالة راند() بإرجاع رقم عشوائي زائف يمكن تحويله إلى حرف. يعتمد طول السلسلة العشوائية على عدد الأحرف التي تقرر إضافتها إلى السلسلة. ولكن عليك أن تتذكر أن وظيفة راند() ترجع القيم في نطاق معين ، وبالتالي فإن طول السلسلة يمكن أن تكون محدودة من قبل هذا النطاق.
هل من الممكن إنشاء سلسلة عشوائية من طول معين في ج?
نعم ، يمكنك إنشاء سلسلة عشوائية بطول معين في ج. للقيام بذلك ، تحتاج إلى إنشاء بعض الأحرف العشوائية باستخدام وظيفة راند() وإضافتها إلى السلسلة. يمكنك استخدام حلقة لتكرار هذه العملية العدد المطلوب من المرات للحصول على سلسلة بطول معين.