مذكرات

memoize - اتخاذ وظائف أسرع عن طريق مساحة التداول للوقت.
التحميل الان

مذكرات الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • Perl Artistic License
  • السعر:
  • FREE
  • اسم الناشر:
  • Mark-Jason Dominus
  • موقع ويب الناشر:
  • http://search.cpan.org/~tyemq/Algorithm-Diff-1.1902/lib/Algorithm/Diff.pm

مذكرات العلامات


مذكرات وصف

memoize - إجراء الوظائف بشكل أسرع بواسطة مساحة التداول للوقت. memoize - إجراء الوظائف بشكل أسرع بواسطة مساحة التداول للوقت .Synopsis # هذه هي الوثائق الخاصة بتسمية Memoize 1.01 استخدام Memoize؛ memoize ('slow_function')؛ slow_function (الحجج)؛ # أسرع مما كان عليه befforethis عادة كل ما تحتاجه لمعرفته. ومع ذلك، تتوفر العديد من الخيارات: Memoize (وظيفة، خيارات ...)؛ تشمل الخيارات: Normalizer => Install install => New_Name Scalar_cache => 'Memory' Scalar_cache => scalar_cache => 'خطأ' SCALAR_CACHE => "دمج" List_cache => قائمة "الذاكرة" list_cache => list_cache => 'خطأ' list_cache => 'merge'`moizing' وظيفة تجعلها أسرع بواسطة مساحة التداول للوقت. يفعل هذا عن طريق التخزين المؤقت قيم العودة الوظيفة في جدول. إذا استدعيت الوظيفة مرة أخرى بنفس الحجج، فإن Memoize Jumps ويمنحك القيمة من الجدول، بدلا من السماح للدالة بحساب القيمة مرة أخرى. إنها مثال متطرف. النظر في تسلسل Fibonacci، المعرفة من خلال الوظيفة التالية: # تعويض أرقام Fibonacci Sub Fib {My $ n = Shift؛ عودة $ n إذا $ n <2؛ fib ($ n-1) + fib ($ n-2)؛ } هذه الوظيفة بطيئة جدا لماذا ا؟ لحساب fib (14)، فإنه يريد أولا حساب fib (13) و fib (12)، وإضافة النتائج ولكن لحساب fib (13)، يتعين على ذلك أولا حساب fib (12) و fib (11)، ثم يعود ويحسب fib (12) مرة أخرى على الرغم من أن الإجابة هي نفسها وكلاهما من الأوقات التي تريدها لحساب fib (12)، يجب أن يحسب fib (11) من الصفر، ثم يجب أن تفعل ذلك مرة أخرى في كل مرة يريد حساب fib (13) هذه الوظيفة تعبد الكثير من النتائج القديمة التي يستغرق الأمر وقتا طويلا حقا لتشغيل---fib (14) يجعل 1200 مكالمة متكررة إضافية لنفسها، لحساب وأصحاب الأشياء التي تم حسابها بالفعل هذه الوظيفة هي مرشح جيد memoization إذا قمت بتملك وظيفة "fib" أعلاه، فسوف يحسب fib (14) مرة واحدة بالضبط، في المرة الأولى التي يحتاج إليها، ثم احفظ النتيجة في جدول ثم إذا طلبت fib (14) مرة أخرى، فإنه يمنحك النتيجة من الجدول أثناء الحوسبة fib (14)، بدلا من الحوسبة fib (12) مرتين، فإنه يفعل ذلك مرة واحدة؛ في المرة الثانية التي تحتاج إليها القيمة التي يحصل عليها من الجدول لا يحسب fib (11) أربع مرات؛ يحسب ذلك مرة واحدة، والحصول عليها من الجدول ثلاث مرات القادمة بدلا من إجراء 1200 مكالمة متكررة إلى "fib"، فإنه يجعل 15 هذا يجعل الوظيفة حوالي 150 مرة أسرع يمكنك أن تفعل نفسية نفسك، عن طريق إعادة كتابة الوظيفة، مثل هذا: # أرقام fibonacci، الإصدار mymoized {my ؛ الفرعية fib {بلدي $ n = التحول؛ عودة $ fib إذا حددت $ fib ؛ عودة $ fib = $ n إذا $ n <2؛ $ fib = fib ($ n-1) + fib ($ n-2)؛ }} أو يمكنك استخدام هذه الوحدة، مثل هذا: استخدام memoize؛ memoize ('fib')؛ # بقية وظيفة fib تماما مثل الإصدار الأصلي وهذا يجعل من السهل تشغيل مذكرة وإيقافها على مثال أكثر بساطة: كتبت راي بسيط؛ سيبحث البرنامج في اتجاه معين، معرفة ما كان ينظر إليه، ثم قم بتحويل قيمة "اللون" (عادة ما تكون سلسلة مثل "الأحمر") من هذا الكائن إلى قيمة حمراء وخضراء وقطرة بكسل، مثل هذا : ل ($ الاتجاه = 0؛ $ الاتجاه <300؛ اتجاه $ ++) {# معرفة الكائن الموجود في الاتجاه $ direction $ اللون = $ كائن-> {color}؛ ($ r، $ g، $ b) = @ {colortorgb ($ color)}؛ ...} لأن هناك عدد قليل نسبيا كائنات في صورة، لا يوجد سوى عدد قليل من الألوان، والتي تنتظر مرارا وتكرارا. SMULICING COLORORGB اسفر من البرنامج عدة في المئة. Recrurements: متطلبات بيرل: perl.


مذكرات برامج ذات صلة