পলিহেডারের বৈশিষ্ট্য ule


15

একটি প্রদত্ত ট্রায়াঙ্গুলেশন একটি বহুতলক পৃষ্ঠের p, তার অয়লার-পোঁয়াকাহ্রে-চারিত্রিক বৈশিষ্ট্যগত নিরূপণ χ(p) = V-E+F, যেখানে Vছেদচিহ্ন সংখ্যা হয়, Eপ্রান্ত সংখ্যা এবং Fমুখমন্ডল সংখ্যা।

বিস্তারিত

শীর্ষে হিসাবে গণনা করা হয় 1,2,...,V। ত্রিভুজুলেশনটি একটি তালিকা হিসাবে দেওয়া হয়, যেখানে প্রতিটি এন্ট্রি একটি ঘরের দিকের বা ঘড়ির কাঁটার দিকের ক্রমে প্রদত্ত এক মুখের শীর্ষের একটি তালিকা।

নাম সত্ত্বেও, ত্রিভুজায়লে 3 টিরও বেশি পক্ষের মুখগুলি থাকতে পারে। মুখগুলি কেবল সংযুক্ত বলে ধরে নেওয়া যেতে পারে যার অর্থ প্রতিটি বদ্ধ সীমাকে একটি বদ্ধ নন-স্ব-ছেদ করা লুপ ব্যবহার করে আঁকা যেতে পারে।

উদাহরণ

টেট্রহেড্রন : এই টিট্রাহেড্রন উত্তল এবং রয়েছে χ = 2। একটি সম্ভাব্য ত্রিকোণ হয়

[[1,2,3], [1,3,4], [1,2,4], [2,3,4]]

কিউব : এই ঘনক্ষনটি উত্তল এবং রয়েছে χ = 2। একটি সম্ভাব্য ত্রিকোণ হয়

[[1,2,3,4], [1,4,8,5], [1,2,6,5], [2,3,7,6], [4,3,7,8],  [5,6,7,8]]

ডোনাট : এই ডোনাট / টরয়েড আকার আছে χ = 0। একটি সম্ভাব্য ত্রিকোণ হয়

[[1,2,5,4], [2,5,6,3], [1,3,6,4], [1,2,7,9], [2,3,8,7], [1,9,8,3], [4,9,8,6], [4,5,7,9], [5,7,8,6]]

ডাবল ডোনাট : এই ডাবল ডোন্টের থাকা উচিত χ = -2। এটি উপরের ডোনোটের দুটি অনুলিপি ব্যবহার করে [1,2,5,4]এবং পাশের সাথে প্রথমটির দিকগুলি চিহ্নিত করে তৈরি করা হয়েছে[1,3,6,4] এবং দ্বিতীয়টির ।

[[2,5,6,3], [1,3,6,4], [1,2,7,9], [2,3,8,7], [1,9,8,3], [4,9,8,6], [4,5,7,9], [5,7,8,6], [1,10,11,4], [10,11,5,2], [1,10,12,14], [10,2,13,12], [1,14,13,2], [4,14,13,5], [4,11,12,14], [11,12,13,5]]

(উদাহরণস্বরূপ এই হাস্কেল প্রোগ্রামটি যাচাই করা হয়েছে ))


2
বিভিন্ন মুখের কি আলাদা আলাদা সংখ্যা হতে পারে?
xnor

1
হ্যাঁ, তাদের যে কোনও সংখ্যক শীর্ষ বিভাজন থাকতে পারে।
flawr

উত্তর:


5

হাস্কেল , 49 46 বাইট

u=length
f x|j<-x>>=id=maximum j+u x-u j`div`2

এটি অনলাইন চেষ্টা করুন!

আমি মুখগুলি সংক্ষিপ্ত করে এবং সর্বাধিক সন্ধান করে শীর্ষে সংখ্যাটি পাই। আমি দৈর্ঘ্য গ্রহণ করে মুখ সংখ্যা খুঁজে। আমি মুখগুলির দৈর্ঘ্য যোগ করে এবং 2 দিয়ে ভাগ করে প্রান্তগুলি খুঁজে পাই।


5

হাস্কেল , 42 বাইট

f m=maximum(id=<<m)-sum[0.5|_:_:l<-m,x<-l]

এটি অনলাইন চেষ্টা করুন!

প্রথম দুটি ছাড়িয়ে এক মুখের প্রতিটি প্রান্তের জন্য 0.5 বিয়োগ করে মুখ এবং প্রান্তের শর্তাদি একত্রিত করে।

Alt 42 বাইট:

f m=maximum(id=<<m)-sum(0.5<$(drop 2=<<m))

এটি অনলাইন চেষ্টা করুন!


এটি খুব চালাক :)
ত্রুটিপূর্ণ


4

জেলি , 18 17 11 10 9 বাইট

1 বাইট আউটগলফার এরিককে ধন্যবাদ জানায়, এবং আরও 1 টি সম্পর্কে আমাকে বলার জন্য Ɗ

FṀ_FLHƊ+L

এটি অনলাইন চেষ্টা করুন!

প্রকৃত বুদ্ধিমান-হ্যাক-হ্যাকড-একসাথে সমাধান ব্যবহার না করে অন্য প্রত্যেকে সম্ভবত ব্যবহার করছে। (ক্রেডিট @ টোটালিহিউম্যানকে কেবলমাত্র অন্যান্য সমাধানের জন্য আমি এটিকে পুনরায় বাস্তবায়ন করতে যথেষ্ট বুঝতে পারি))

পুরানো সমাধান (17 বাইট)

ṙ€1FżFṢ€QL
;FQL_Ç

এটি অনলাইন চেষ্টা করুন!

আমি আশা করি আমার সবকিছু ঠিক হয়ে গেছে ধরে নিই যে সমস্ত মুখের কমপক্ষে 3 টি শীর্ষবিন্দু রয়েছে এবং কোনও দুটি মুখের সমান শিখা রয়েছে; কোডটি ভঙ্গ করে এমন কিছু নিয়ে আসতে আমি টপোলজিতে যথেষ্ট ভাল নই।

বিকল্প 17 বাইট সমাধান:

ṙ€1FżFṢ€,;F$QL$€I

ব্যাখ্যা

;FQL_Ç    Main link. Argument: faces
            e.g. [[1,2,3],[1,3,4],[1,2,4],[2,3,4]]
 F          Flatten the list. We now have a flat list of vertices.
            e.g. [1,2,3,1,3,4,1,2,4,2,3,4]
;           Append this to the original list.
            e.g. [[1,2,3],[1,3,4],[1,2,4],[2,3,4],1,2,3,1,3,4,1,2,4,2,3,4]
  Q         Remove duplicates. We now have a list of faces and vertices.
            e.g. [[1,2,3],[1,3,4],[1,2,4],[2,3,4],1,2,3,4]
   L        Get the length of this list. This is equal to V+F.
            e.g. 8
     Ç      Call the helper link on the faces to get E.
            e.g. 6
    _       Subtract the edges from the previous result to get V-E+F.
            e.g. 2

ṙ€1FżFṢ€QL    Helper link. Argument: faces
                e.g. [[1,2,3],[1,3,4],[1,2,4],[2,3,4]]
ṙ€1             Rotate each face 1 position to the left.
                e.g. [[2,3,1],[3,4,1],[2,4,1],[3,4,2]]
   F            Flatten this result.
                e.g. [2,3,1,3,4,1,2,4,1,3,4,2]
     F          Flatten the original faces.
                e.g. [1,2,3,1,3,4,1,2,4,2,3,4]
    ż           Pair the items of the two flattened lists.
                e.g. [[2,1],[3,2],[1,3],[3,1],[4,3],[1,4],[2,1],[4,2],[1,4],[3,2],[4,3],[2,4]]
      Ṣ€        Order each edge.
                e.g. [[1,2],[2,3],[1,3],[1,3],[3,4],[1,4],[1,2],[2,4],[1,4],[2,3],[3,4],[2,4]]
        Q       Remove duplicates. We now have a list of edges.
                e.g. [[1,2],[2,3],[1,3],[3,4],[1,4],[2,4]]
         L      Get the length of the list to get E.
                e.g. 6

আপনি কি ;/সাথে প্রতিস্থাপন করতে পারবেন না F? ;-)
এরিক দি আউটগলফার

@ এরিক্ট আউটগল্ফার লোল, এটি সম্ভবত একটি দেব সংস্করণ থেকে কিছুটা মস্তিষ্কে পরিণত হয়েছিল
পূর্কাকাডারী

আসলে এটি খালি অ্যারেগুলির ক্ষেত্রে কোড ত্রুটি করেছে made
এরিক আউটগল্ফার

সেখানে কি কখনও খালি অ্যারে থাকবে?
পুরক্কা কুডারী

ওহ, এবং 1) আপনার টিআইও লিঙ্কটির আলাদা কোড রয়েছে এবং 2) এখানে নতুন কোক রয়েছে!
এরিক দি আউটগলফার


2

পাইথন 2 , 47 বাইট

-1 বাইট ধন্যবাদ ... ব্যবহারকারীর জন্য 5656566 (মূলত গমের উইজার্ড ছিল)।

lambda l:len(l)-len(sum(l,[]))/2+max(sum(l,[]))

এটি অনলাইন চেষ্টা করুন!


1
আমি আমার আসল উত্তরটি sum(l,[])দু'বার ব্যবহার করে সংরক্ষণ করে উন্নত করেছি improved পাইথনেও এটি ব্যবহার করা যায় কিনা তা আমি জানি না।
পোস্ট রক গার্ফ হান্টার

@ user56656 এটি একটি বাইট সংরক্ষণ করে, ধন্যবাদ!
10

1

স্ট্যাক্স , 9 বাইট

ÑF4╨Ω◙╜#├

চালান এবং অনলাইন ডিবাগ

এটি সম্পূর্ণমানবিক অজগর সমাধানের একটি সরাসরি-ফরওয়ার্ড বন্দর ।

%   length of input (a)
x$Y flatten input and store in y
%h  half of flattened length (b)
-   subtract a - b (c)
y|M maximum value in y (d)
+   add c + d and output

এটি চালান








0

জাভাস্ক্রিপ্ট (ES6), 60 বাইট

a=>a.map(b=>(v=Math.max(v,...b),d+=b.length/2-1),d=v=0)&&v-d

ব্যাখ্যা: প্রতিটি মুখের উপর লুপ করে দেখা যায়, @ xnor এর উত্তর vঅনুসারে মুখের সংখ্যা বিয়োগ করে dসর্বাধিক প্রান্তটি দেখা এবং ট্র্যাক করে ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.