الاستخدام العملي للمصفوفات ذات الأبعاد n ، حيث (n> 3)

StackOverflow https://stackoverflow.com/questions/3641012

سؤال

لقد قمت برمجة على مدى السنوات الثماني الماضية ، والآن كنت أتساءل فقط أنه إذا كان هناك أي استخدام عملي لمصفوفة N- الأبعاد ، حيث لا يمكن أن أتخيل سوى بنية بيانات أقل من أو تساوي 3 أبعاد . أي شخص يستخدم أكثر من 3 أبعاد في أي برنامج؟ هل هناك أي استخدامات عملية لصفيف ND الذي يتجاوز 3D؟ إذا كان الأمر كذلك ، فيرجى نشر بعض العينات.

هل كانت مفيدة؟

المحلول

المثال الوحيد اللائق الذي أذكره كان في نص 1982 أوه! باسكال! مما يمنحك فكرة عن مدى ندرة في تجربتي.

كان المثال هو نظام حفظ الأسهم حيث يمكن فهرسة الجينز

 inventory[sex][size][length][color][fit] = number_received

وهو مفتعل قليلاً فقط. لن تواجه أي مشكلة في قاعدة بيانات منظمة بهذه الطريقة ولكنها تبدو مضحكة كرمز.

نصائح أخرى

خذ أي شيء تقريبًا من الفيزياء ، حيث تكون التنسور شائعة ، على سبيل المثال النسبية العامة ، الكيمياء الحسابية ، الفيزياء الكمومية.

http://en.wikipedia.org/wiki/Tensor#applications

التوتر مع المرتبة 4 شائعة على سبيل المثال.

http://www.oonumerics.org/ftensor/ftensor.pdf

http://mpqc.svn.sourceforge.net/viewvc/mpqc/trunk/mpqc/src/lib/chemistry

333     double
334     LMP2::compute_ecorr_lmp2()
335     {
336     Timer tim("ecorr");
337     
338     sma2::Index r("r"), s("s");
339     sma2::Array<0> ecorr;
340     double ecorr_lmp2 = 0.0;
341     for (my_occ_pairs_t::const_iterator iter = my_occ_pairs_.begin();
342     iter != my_occ_pairs_.end();
343     iter++) {
344     sma2::Index i(iter->first-nfzc_);
345     sma2::Index j(iter->second-nfzc_);
346     if (j.value() > i.value()) continue;
347     double f;
348     if (i.value() != j.value()) f = 2.0;
349     else f = 1.0;
350     ecorr.zero();
351     ecorr() += f * 2.0 * K_2occ_(i,j,r,s) * T_local_(i,j,r,s);
352     ecorr() -= f * K_2occ_(i,j,s,r) * T_local_(i,j,r,s);
353     ecorr_lmp2 += ecorr.value();
354     }
355     
356     msg_->sum(ecorr_lmp2);
357     
358     return ecorr_lmp2;
359     } 

المثال الأكثر وضوحًا هو قائمة مسافات Voxel ... 3 + 1 = 4 أبعاد :)

صفيف يحمل جميع الأبراج المحصنة في Ultima III سيكون من المنطقي صفيفًا بأربعة أبعاد. كل زنزانة هي شبكة ثلاثية الأبعاد من الخلايا ، وكلها بنفس الحجم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top