
Rapidkode: احصل عليه بشكل صحيح في المرة الأولى
RapidKode هي حزمة Python التي توفر هياكل بيانات سريعة ومرنة ومعبرة ، ALOGORITHMS المصممة لجعل العمل مع كل من البرمجة التنافسية والترميز سهلة وبديهية. يهدف إلى أن تكون لبنة بناء عالية المستوى للبرمجة التنافسية في بيثون. مع رابيدكود يمكنك إجراء خوارزميات معقدة في وقت أقل ، يتم تحسين جميع الخوارزميات إلى أرقىها لتقليل التعقيد الزمني لتجعلك تبرز في لوحة الرائد. لم يعد هناك وقت لإهدار كتابة خبز كبير من التعليمات البرمجية وتصحيح الأخطاء في وقت لاحق ، مع Rapidkode يحدث كل شيء في متناول يدك مع مجرد سطر واحد من التعليمات البرمجية. الهدف من RapidKode هو مساعدة المبتدئين على البدء في البرمجة التنافسية ، وفهم أهمية الوقت والمكان. يتمثل شعار صنع RapidKode في "الحصول عليه بشكل صحيح في المرة الأولى" بدلاً من إنفاق 10 دقائق ثمينة على وظائف الاستخدام.
تثبيت:
أو
بالنسبة للقضايا ، قم بزيارة تقارير الأخطاء والمساهمات في التطوير -> انقر هنا
الوظائف المتاحة:
وظائف الأرقام:
| بناء الجملة | عملية |
|---|
| numbers.gen_sparsenum_upto (x) | يولد الرقم المتفرق حتى النطاق المحدد |
| numbers.get_sparsenum_after (n) | إرجاع الرقم المتفرق للرقم للرقم المحدد |
| أرقام. ceckprime (x) | إرجاع صحيح إذا كان الرقم رئيسًا |
| number.getPrimes.generate (x) | إرجاع الأرقام الأولى X |
| number.getPrimes.upto (x) | إرجاع الأرقام الأولية حتى المدى المعطى |
| numbers.getPrimes.inrange (x ، y) | إرجاع الأرقام الأولية في النطاق المحدد |
| الأرقام. fib.getelement (x) | إرجاع رقم X'th Fibonacci |
| الأرقام. fib.generate (x) | إرجاع أول أرقام X Fibonacci |
مثال:
import rapidkode as rk
var = rk . numbers . gen_sparsenum_upto ( 100 )
print ( var )
var = rk . numbers . get_sparsenum_after ( 3289 )
print ( var )
var = rk . numbers . checkprime ( 8364 )
print ( var )
var = rk . numbers . getprimes . generate ( 100 )
print ( var )
var = rk . numbers . getprimes . inrange ( 100 , 500 )
print ( var )
var = rk . numbers . fib . getelement ( 58 )
print ( var )
var = rk . numbers . fib . generate ( 25 )
print ( var )
الإخراج:
[0, 1, 2, 4, 5, 8, 9, 10, 16, 17, 18, 20, 21, 32, 33, 34, 36, 37, 40, 41, 42, 64, 65, 66, 68, 69, 72, 73, 74, 80, 81, 82, 84, 85, 128]
4096
False
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541]
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499]
365435296162
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368]
نظام الأرقام - وظائف التحويل:
| بناء الجملة | عملية |
|---|
| تحويل (x ، 'sys'). إلى ('new_sys') | يحول X من SYS إلى New SYS |
| مثال: | |
| تحويل (9845 ، 'ديسمبر'). إلى ('bin') | يحول 9845 من العشري إلى الثنائي |
| تحويل (3745 ، "أكتوبر"). إلى ('hex') | يحول 3745 من أوكتال إلى سداسي عشري |
- يمكنك استبدال
sys بـ ['bin' و 'Dec' و 'Oct' و Hex '] و new_sys مع [' bin '،' Dec '،' Oct '،' Hex '] ، لإجراء تحويلات الأرقام.
import rapidkode as rk
converted_num_1 = rk . convert ( 2013 , 'dec' ). to ( 'bin' )
print ( converted_num_1 )
converted_num_2 = rk . convert ( 11111011101 , 'bin' ). to ( 'hex' )
print ( converted_num_2 )
converted_num_3 = rk . convert ( '7dd' , 'hex' ). to ( 'dec' )
print ( converted_num_3 )
converted_num_4 = rk . convert ( 5634 , 'oct' ). to ( 'dec' )
print ( converted_num_4 )
converted_num_5 = rk . convert ( 2972 , 'hex' ). to ( 'oct' )
print ( converted_num_5 )
converted_num_6 = rk . convert ( 24562 , 'oct' ). to ( 'bin' )
print ( converted_num_6 )
الإخراج:
11111011101
7dd
2013
2972
24562
10100101110010
خوارزميات البحث:
| تقنية | بناء الجملة | عملية | تعقيد الوقت |
|---|
| البحث الخطي | Linear.Search (ARR ، X) | إرجاع موقف x في arr | على) |
| البحث الثنائي | Binary.Search (ARR ، X) | إرجاع موقف x في arr | س (سجل ن) |
| البحث القفز | Jump.Search (ARR ، X) | إرجاع موقف x في arr | س (√ ن) |
| البحث الاستيفاء | interpolation.search (arr ، x) | إرجاع موقف x في arr | o (log2 (log2 n)) |
| البحث الأسي | phesponential.search (arr ، x) | إرجاع موقف x في arr | o (log2 i) |
| البحث الثلاثية | ternary.search (arr ، x) | إرجاع موقف x في arr | o (log3 n) |
الإضافة يمكنك استخدام:
| وظيفة | عملية |
|---|
| .يعرض() | يطبع الرمز في المحطة |
| .معلومات() | يعطي معلومات موجزة |
| .الجو () | يطبع الخوارزمية الحكيمة الخطوة |
مثال:
import rapidkode as rk
> >> rk . binary . show ()
> >> rk . binary . info ()
> >> rk . binary . algo ()
الإخراج:
def binarysearch ( arr , x ):
l = 0
r = len ( arr ) - 1
while l <= r :
mid = l + ( r - l ) // 2
if arr [ mid ] == x :
return mid
elif arr [ mid ] < x :
l = mid + 1
else :
r = mid - 1
return "element not found"
Binary search is the search technique that works efficiently on sorted lists
. Hence, to search an element into some list using the binary search technique, we must ensure that the list is sorted
. Binary search follows the divide and conquer approach in which the list is divided into two halves, and the item is compared with the middle element of the list
. If the match is found then, the location of the middle element is returned
. Otherwise, we search into either of the halves depending upon the result produced through the match
Algorithm
Step 1 - Read the search element from the user.
Step 2 - Find the middle element in the sorted list.
Step 3 - Compare the search element with the middle element in the sorted list.
Step 4 - If both are matched, then display "Given element is found!!!" and terminate the function.
Step 5 - If both are not matched, then check whether the search element is smaller or larger than the middle element.
Step 6 - If the search element is smaller than middle element, repeat steps 2, 3, 4 and 5 for the left sublist of the middle element.
Step 7 - If the search element is larger than middle element, repeat steps 2, 3, 4 and 5 for the right sublist of the middle element.
Step 8 - Repeat the same process until we find the search element in the list or until sublist contains only one element.
Step 9 - If that element also doesn't match with the search element, then display "Element is not found in the list!!!" and terminate the function.
يمكن استخدام الوظائف الثلاث .show() ، .info() ، .algo() لجميع تقنيات البحث الست.
خوارزميات الفرز:
| تقنية | بناء الجملة | عملية | تعقيد الوقت |
|---|
| نوع الاختيار | Selection.sort (ARR) | فرز ويعيد الصفيف المعطى | س (ن^2) |
| نوع الفقاعة | bubble.sort (ARR) | فرز ويعيد الصفيف المعطى | س (ن^2) |
| نوع الإدراج | insertion.sort (ARR) | فرز ويعيد الصفيف المعطى | س (ن^2) |
| دمج الفرز | دمج. | فرز ويعيد الصفيف المعطى | o (n log (n)) |
| نوع الكومة | HEAP.SORT (ARR) | فرز ويعيد الصفيف المعطى | o (n log (n)) |
| نوع سريع | Quick.Sort (ابدأ ، نهاية ، ARR) | فرز ويعيد الصفيف المعطى | س (ن^2) |
| فرز العد | count.sort (ARR) | فرز ويعيد الصفيف المعطى | o (n+k) |
| فرز راديكس | radix.sort (ARR) | فرز ويعيد الصفيف المعطى | س (NK) |
| نوع دلو | دلو. | فرز ويعيد الصفيف المعطى | o (n + k) |
| فرز قذيفة | shell.sort (ARR) | فرز ويعيد الصفيف المعطى | س (nlog n) |
| مشط | مشط (ARR) | فرز ويعيد الصفيف المعطى | o (n log n) |
| نوع الحمام | حمام. | فرز ويعيد الصفيف المعطى | س (ن + ن) |
| نوع الدورة | Cycle.Sort (ARR) | فرز ويعيد الصفيف المعطى | س (N2) |
الإضافة يمكنك استخدام:
| وظيفة | عملية |
|---|
| .يعرض() | يطبع الرمز في المحطة |
| .معلومات() | يعطي معلومات موجزة |
| .الجو () | يطبع الخوارزمية الحكيمة الخطوة |
مثال:
import rapidkode as rk
> >> rk . count . show ()
> >> rk . count . info ()
> >> rk . count . algo ()
الإخراج:
def countsort ( arr ):
output = [ 0 for i in range ( len ( arr ))]
count = [ 0 for i in range ( 256 )]
array = [ 0 for _ in arr ]
for i in arr :
count [ i ] += 1
for i in range ( 256 ):
count [ i ] += count [ i - 1 ]
for i in range ( len ( arr )):
output [ count [ arr [ i ]] - 1 ] = arr [ i ]
count [ arr [ i ]] -= 1
for i in range ( len ( arr )):
array [ i ] = output [ i ]
return array Counting sort is a sorting algorithm that sorts the elements of an array by counting the number of occurrences of each unique element in the array
. The count is stored in an auxiliary array and the sorting is done by mapping the count as an index of the auxiliary array
. Counting sort is a sorting technique based on keys between a specific range
. It works by counting the number of objects having distinct key values (kind of hashing)
. Then doing some arithmetic to calculate the position of each object in the output sequence
Algorithm
step 1 - Find out the maximum element (let it be max) from the given array.
step 2 - Initialize an array of length max+1 with all elements 0.
This array is used for storing the count of the elements in the array.
step 3 - Store the count of each element at their respective index in count array
For example: if the count of element 3 is 2 then, 2 is stored in the 3rd position of count array.
If element "5" is not present in the array, then 0 is stored in 5th position.
step 4 - Store cumulative sum of the elements of the count array.
It helps in placing the elements into the correct index of the sorted array.
step 5 - Find the index of each element of the original array in the count array.
This gives the cumulative count. Place the element at the index calculated as shown in figure below.
step 6 - After placing each element at its correct position, decrease its count by one.
يمكن استخدام الوظائف الثلاث .show() ، .info() ، .algo() لجميع تقنيات الفرز الـ 13.
وظائف الرسم البياني:
| بناء الجملة | عملية |
|---|
| .Buildedge (U ، V) | إنشاء حافة الرسم البياني |
| .BuildMultiedge ([]) | ينشئ رسم بياني مع قائمة التنسيق المعطى |
| .BFS (x) | أداء العرض الأول |
| .DFS (x) | يؤدي العمق الأول البحث |
| .findap () | إرجاع نقطة التعبير عن الرسم البياني |
مثال:
import rapidkode as rk
# make graph object with graph() class
my_graph = rk . graph ()
# adding one edge at a time
my_graph . buildedge ( 0 , 1 )
my_graph . buildedge ( 0 , 2 )
my_graph . buildedge ( 1 , 2 )
my_graph . buildedge ( 2 , 0 )
my_graph . buildedge ( 2 , 3 )
my_graph . buildedge ( 3 , 3 )
import rapidkode as rk
# make graph object with graph() class
my_graph = rk . graph ()
# adding multiple edges at once
my_graph . buildmultiedge ([ 0 , 1 , 0 , 2 , 1 , 2 , 2 , 0 , 2 , 3 , 3 , 3 ])
import rapidkode as rk
# make graph object with graph() class
my_graph = rk . graph ()
my_graph . buildmultiedge ([ 0 , 1 , 0 , 2 , 1 , 2 , 2 , 0 , 2 , 3 , 3 , 3 ])
# performing BFS from edge 2
print ( my_graph . BFS ( 2 ))
# performing DFS from edge 2
print ( my_graph . DFS ( 2 ))
# finding the Articulation Point
print ( my_graph . findAP ())
الإخراج:
['-->', 2, '-->', 0, '-->', 3, '-->', 1]
['-->', 2, '-->', 0, '-->', 1, '-->', 3]
2
وظائف النمط:
تستخدم الوظيفة التالية خوارزمية Rabin-Karp وهي خوارزمية تستخدم للبحث/المطابقة في النص باستخدام وظيفة التجزئة. على عكس خوارزمية مطابقة السلسلة الساذجة ، فإنها لا تنتقل عبر كل حرف في المرحلة الأولية ، بل إنها تقوم بتصفية الأحرف التي لا تتطابق ثم تؤدي المقارنة.
| بناء الجملة | عملية |
|---|
| pattern.isthere (a) .inn (b) | إرجاع صحيح إذا كانت السلسلة A موجودة في السلسلة B |
| pattern.hereis (a) .inn (b) | إرجاع موضع الفهرس من السلسلة A في السلسلة B |
مثال:
import rapidkode as rk
a = 'sasi'
b = 'satyasasivatsal'
print ( rk . isthere ( a ). inn ( b ))
print ( rk . whereis ( a ). inn ( b ))
الإخراج:
وظائف LinkedList:
| عملية | بناء الجملة |
|---|
| .ins_beg (العقدة) | إدراج عقدة جديدة في البداية |
| .ins_end (العقدة) | إدراج عقدة جديدة في النهاية |
| .ins_after (POS ، Node) | إدراج عقدة جديدة بعد تحديد العقدة |
| .ins_before (pos ، العقدة) | إدراج عقدة جديدة قبل العقدة المحددة |
| .del_node (العقدة) | يحذف العقدة المحددة |
| .renturn_as_list () | إرجاع LinkedList كقائمة Python |
مثال:
import rapidkode as rk
my_list = rk . linkedlist ()
my_list . head = rk . node ( 'a' )
s1 = rk . node ( 'b' )
s2 = rk . node ( 'c' )
s3 = rk . node ( 'd' )
s4 = rk . node ( 'e' )
s5 = rk . node ( 'f' )
s6 = rk . node ( 'g' )
my_list . head . next = s1
s1 . next = s2
s2 . next = s3
s3 . next = s4
s4 . next = s5
s5 . next = s6
print ( my_list )
الإخراج:
a -> b -> c -> d -> e -> f -> g -> None
مثال -2:
# insertion at beginning
my_list . ins_beg ( rk . node ( 'A' ))
# insertion at end
my_list . ins_end ( rk . node ( 'G' ))
# insertion at positiom
my_list . ins_after ( 'e' , rk . node ( 'E' ))
# insertion at position
my_list . ins_before ( 'c' , rk . node ( 'C' ))
# deletion of ndoe
my_list . del_node ( 'b' )
# returning as list
my_listt = my_list . return_as_list ()
print ( my_list )
print ( my_listt )
الإخراج:
A -> a -> C -> c -> d -> e -> E -> f -> g -> G -> None
['A', 'a', 'C', 'c', 'd', 'e', 'E', 'f', 'g', 'G', 'None']
معالجة بت:
| بناء الجملة | عملية |
|---|
| bits.toggle_bits (x) | تبديل البتات المحددة والبتات غير المحددة |
| bits.convert_to_bin (x) | يحول رقم معين إلى ثنائي |
| bits.counsetbits (x) | يعيد رقم البتات المحددة في رقم DEC |
| bits.rotate_byleft (x ، d) | يدور البتات إلى اليسار بواسطة D Times |
| bits.rotate_byright (X ، D) | يدور البتات إلى اليسار بواسطة D Times |
| bits.countflips (x ، y) | إرجاع العدد من التقلبات لجعل x كما y |
مثال:
import rapidkode as rk
var = rk . bits . toggle_bits ( 873652 )
print ( var )
var = rk . bits . convert_to_bin ( 873652 )
print ( var )
var = rk . bits . countsetbits ( 873652 )
print ( var )
var = rk . bits . rotate_byleft ( 873652 , 4 )
print ( var )
var = rk . bits . rotate_byright ( 873652 , 4 )
print ( var )
var = rk . bits . countflips ( 8934756 , 873652 )
print ( var )
الإخراج:
960632
11010101010010110100
8474306
13978432
54603
7
وظائف متفرقات أخرى:
| بناء الجملة | عملية |
|---|
| .showsieves () | يطبع رمز مناخي لإيجاد رقم رئيسي في المحطة |
| getPrimeFactors.fornum (x) | إرجاع قائمة العوامل الأولية للرقم المحدد |
| FindGcDof (x ، y) | إرجاع GCD من الأرقام المعطاة |
| FindInversions.forr (ARR) | يعود مدى قرب المصفوفة من الفرز |
| catlan_numbers.getElement (x) | إرجاع رقم Catlan X'th |
| catlan_numbers.gen (x) | إرجاع قائمة من أول x catlan_numbers |
مثال:
import rapidkode as rk
var = rk . getprimefactors . fornum ( 6754 )
print ( var )
var = rk . findgcdof ( 97345435 , 8764897 )
print ( var )
var = rk . findinversions . forr ([ 1 , 20 , 6 , 4 , 5 ])
print ( var )
var = rk . catlan_numbers . getelement ( 15 )
print ( var )
var = rk . catlan_numbers . gen ( 28 )
print ( var )
الإخراج:
[2, 11, 307.0]
1
5
9694845.0
[1.0, 1.0, 2.0, 5.0, 14.0, 42.0, 132.0, 429.0, 1430.0, 4862.0, 16796.0, 58786.0, 208012.0, 742900.0, 2674440.0, 9694845.0, 35357670.0, 129644790.0, 477638700.0, 1767263190.0, 6564120420.0, 24466267020.0, 91482563640.0, 343059613650.0, 1289904147324.0, 4861946401452.0, 18367353072152.0, 69533550916004.0]
المساهمة في Rapidkode
- جميع المساهمات ، وتقارير الأخطاء ، وإصلاحات الأخطاء ، وتحسين الوثائق ، والتحسينات ، والأفكار مرحب بها.
- إثارة مشكلة إذا وجدت أي مشكلة
- إذا كنت ترغب في المساهمة ، فافه ريبو في إثارة مشكلة قبل تقديم طلب سحب ، سيكون من السهل على الإدارة
- ائتمانات شعار ورأس -> M.Sri Harsha❤
koding السريع سعيد !!