क्या दो नंबरों में अद्वितीय फैक्टरियल होते हैं?


11

उनके भाज्य में दो संख्याओं को तोड़ो; यदि वे कोई साझा करते हैं, तो एक गलत मूल्य लौटाते हैं। अन्यथा, एक सत्य मान लौटाएं। ( इस हालिया सवाल से प्रेरित )

दूसरे शब्दों में, लालची संभव तरीके से प्रत्येक इनपुट संख्या को भाज्य (सकारात्मक पूर्णांकों के योग) के रूप में लिखें; एक सत्य मान लौटाएं यदि कोई अभ्यावेदन दोनों निरूपण में प्रकट नहीं होता है, तो एक गलत मूल्य।

उदाहरण

20 और 49 दिया गया:

20 = 3! + 3! + 3! + 2!
49 = 4! + 4! + 1!

दोनों अभ्यावेदन में कोई तथ्यात्मक नहीं दिखाई देता है, इसलिए एक सत्य मूल्य लौटाएं।

32 और 132 दिया गया:

132 = 5! + 3! + 3!
 32 = 4! + 3! + 2!

3! दोनों अभ्यावेदन में प्रकट होता है, इसलिए एक गलत मूल्य लौटाता है।

आई / ओ

इनपुट और आउटपुट किसी भी मानक साधन के माध्यम से हो सकते हैं ।

इनपुट हमेशा दो nonnegative पूर्णांक होंगे; आपकी भाषा की आवश्यकता के अलावा इन पूर्णांकों पर कोई ऊपरी सीमा नहीं है।

आउटपुट एक सत्य या गलत मूल्य होना चाहिए । इन मूल्यों के लिए जरूरी नहीं है कि वे अलग-अलग इनपुट्स के अनुरूप हों, जब तक कि हर आउटपुट सही ढंग से सत्य / गलत हो।

परीक्षण के मामलों

यदि एक इनपुट है 0, तो उत्तर हमेशा सत्य होगा। अन्य सत्य परीक्षण के मामले:

{6, 3}, {4, 61}, {73, 2}, {12, 1}, {240, 2}, {5, 264}, {2, 91}, {673, 18},
 {3, 12}, {72, 10}, {121, 26}, {127, 746}

यदि दोनों इनपुट विषम पूर्णांक हैं, या यदि दोनों इनपुट समान धनात्मक पूर्णांक हैं, तो आउटपुट हमेशा गलत होगा। अन्य गलत परीक्षण मामले:

{8, 5}, {7, 5}, {27, 47}, {53, 11}, {13, 123}, {75, 77}, {163, 160}, {148, 53},
 {225, 178}, {285, 169}, {39, 51}, {207, 334}, {153, 21}, {390, 128}, {506, 584},
 {626, 370}, {819, 354}

यह , इसलिए सबसे कम बाइट्स जीतता है!


"प्रत्येक इनपुट नंबर को लालच में संभव तरीके से सकारात्मक (पूर्णांक के सकारात्मक) के योग के रूप में लिखें" क्या आपको इसके बजाय laziest संभव तरीके से मतलब नहीं है ?
user41805

4
@ क्रिकटी लिथोस नं। वह लालची एल्गोरिदम के रूप में ज्ञात एल्गोरिदम के वर्ग की बात कर रहा है, जो प्रत्येक चरण के बाद कुछ मीट्रिक को अधिकतम करके काम करता है। के रूप में, हमेशा जितना वे ले सकते हैं।
जॉन ड्वोरक

जवाबों:


9

जेली , 7 बाइट्स

Æ!ṠḄ&/¬

इसे ऑनलाइन आज़माएं!

यह काम किस प्रकार करता है

Æ!ṠḄ&/¬  Main link. Argument: (x, y) (pair of integers)

Æ!       Convert x and y to factorial base.
  Ṡ      Apply the sign function to each digit.
   Ḅ     Unbinary; convert each resulting Boolean array from base 2 to integer.
    &/   Reduce the resulting pair of integers by bitwise AND.
      ¬  Take the logical NOT of the result.

Æ!कुछ परिदृश्यों में पागलपन उपयोगी लगता है।
मैजिक ऑक्टोपस Urn

क्या बिना किसी संकेत के सीधे-सीधे तथ्यात्मक-आधार सूचियों को गुणा करने की कोशिश करने से कुछ हासिल होता है?
ग्रेग मार्टिन

@GregMartin मुझे ऐसा नहीं लगता। अंक सरणियों को एक ही लंबाई के लिए गद्देदार या छोटा करना होगा, जो शायद इसे बचाने की तुलना में अधिक बाइट खर्च करेगा।
डेनिस



2

जावास्क्रिप्ट (ईएस 6), 71 बाइट्स

(a,b,g=(n,e=1,f=1)=>n>=f&&g(n,++e,f*e)+((n/f|0)%e&&1<<e))=>!(g(a)&g(b))

जावास्क्रिप्ट के पूर्णांक 53 बिट्स तक सीमित हैं, जो कि 18 के लिए पर्याप्त है !; इसका मतलब यह है कि मैं 18 बिट्स के मास्क का उपयोग कर सकता हूं ताकि यह पता लगाया जा सके कि किन फैक्टरियों की जरूरत है।



0

गणितज्ञ, 73 बाइट्स

F[x_]:=First@IntegerPartitions[x,99,Range[99]!];!IntersectingQ[F@#,F@#2]&

इनपुट फॉर्म

[X1, x2]


मुझे यह परीक्षण करने में कई त्रुटियाँ हो रही हैं ...
स्कॉट मिलनर

बस अंत में टाइप करें [X1, x2]
J42161217

आह। मैं दो अलग-अलग पूर्णांकों के बजाय एक सूची इनपुट कर रहा था। आप इसे ±x_:=First@IntegerPartitions[x,99,Range[99]!];!IntersectingQ[±#,±#2]&[4,61](69 बाइट्स) के साथ आगे गोल्फ कर सकते हैं । आईएसओ 8859-1 एन्कोडिंग में, ±एक बाइट है।
स्कॉट मिलनर

0

सी, 122 119 बाइट्स

G(q,i){return gamma(q+1)>i?gamma(q):G(q+1,i);}
Q(a,b,u,v){while(a&&b){a-=u=G(1,a);b-=v=G(1,b);if(a==b)exit();}exit(0);}

Qमुख्य कार्य है। इसे बिल्कुल दो सकारात्मक पूर्णांक मानों के साथ लागू किया जाना चाहिए। यह सत्य के लिए और मिथ्या के लिए एक निकास कोड के साथ बाहर निकलता है ।01

यद्यपि यह टीआईओ पर काम नहीं करता है, यह मेरे सिस्टम पर काम करता है जिसमें होमब्रॉव प्रदान किया गया है gcc 7.1.0

मैंने Cकाफी समय में गोल्फ नहीं किया है, इसलिए गोल्फ टिप्स की बहुत सराहना की जाती है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.