दिलचस्प पोस्ट
एंड्रॉइड के लिए नवीनतम ओपनएसएसएल संकलित करना कैसे एक स्ट्रिंग को एक चार सरणी वापस परिवर्तित करने के लिए? जावा में सीरियलाइज करने योग्य और एक्स्ट्रिबोरजबल के बीच अंतर क्या है? पता कैसे एक समारोह परिभाषित किया जाता है? जावा क्लास जो नक्शा लागू करता है और प्रविष्टि क्रम रखता है? स्ट्रिंग सीमांकक (मानक C ++) का उपयोग करके पार्स (विभाजन) सी ++ में एक स्ट्रिंग जावा में हैश फ़ंक्शन लिखने का सर्वोत्तम अभ्यास क्या है? अनुरोधों का उपयोग कर छवि को कैसे डाउनलोड करें अजीब कमांड लाइन पैरामीटर कैसे प्राप्त करें? स्थगित निष्पादन और उत्सुक मूल्यांकन javax.websocket क्लाइंट सरल उदाहरण केवल समय कैसे स्टोर किया जाए; तिथि और समय नहीं? C # में DateTime के लिए स्ट्रिंग पार्स करें हेरोको + नोड.जेएस त्रुटि (वेब ​​प्रक्षेपण 60 सेकंड के भीतर $ PORT में बाँधने में विफल) एक ListView पर लौटने जब बनाए रखें / सहेजें / स्क्रॉल स्थिति को पुनर्स्थापित करें

स्विफ्ट सरणी पर ऑपरेशन (यूनियन, प्रतिच्छेदन) सेट करें?

क्या कोई मानक लाइब्रेरी कॉल्स हैं जो मैं दो सरणियों पर सेट ऑपरेशंस करने के लिए उपयोग कर सकता हूं, या इस तरह के तर्क को खुद को लागू कर सकता हूँ (आदर्श रूप में कार्यशील और संभवतः कुशलतापूर्वक)?

वेब के समाधान से एकत्रित समाधान "स्विफ्ट सरणी पर ऑपरेशन (यूनियन, प्रतिच्छेदन) सेट करें?"

हां, स्विफ्ट में Set क्लास है

 let array1 = ["a", "b", "c"] let array2 = ["a", "b", "d"] let set1:Set<String> = Set(array1) let set2:Set<String> = Set(array2) 

स्विफ्ट 3.0+ सेट पर ऑपरेशन कर सकते हैं:

 firstSet.union(secondSet)// Union of two sets firstSet.intersection(secondSet)// Intersection of two sets firstSet.symmetricDifference(secondSet)// exclusiveOr 

स्विफ्ट 2.0 सरणी तर्कों पर गणना कर सकता है:

 set1.union(array2) // {"a", "b", "c", "d"} set1.intersect(array2) // {"a", "b"} set1.subtract(array2) // {"c"} set1.exclusiveOr(array2) // {"c", "d"} 

स्विफ्ट 1.2+ सेट पर गणना कर सकते हैं:

 set1.union(set2) // {"a", "b", "c", "d"} set1.intersect(set2) // {"a", "b"} set1.subtract(set2) // {"c"} set1.exclusiveOr(set2) // {"c", "d"} 

यदि आप कस्टम स्ट्रैक्ट्स का उपयोग कर रहे हैं, तो आपको एचशबल को कार्यान्वित करने की आवश्यकता है

स्विफ्ट 2.0 अपडेट के लिए टिप्पणी में माइकल स्टर्न के लिए धन्यवाद

हाशनीय जानकारी के लिए टिप्पणियों में अमजद हुसैनी को धन्यवाद

सबसे प्रभावी तरीका मुझे पता है कि गॉड नंबर का उपयोग कर। गॉडेल एन्कोडिंग के लिए Google

विचार ऐसा है मान लीजिए आपके पास संभावित संख्याएं हैं और उन्हें सेट बनाने की आवश्यकता है। उदाहरण के लिए, एन = 100,000 और {1,2,3}, {5, 88, 19000} आदि जैसे सेट बनाना चाहते हैं।

विचार स्मृति में एन प्रधान संख्याओं की सूची रखने के लिए और किसी दिए गए सेट {a, b, c, …} के लिए आप इसे सांकेतिक शब्दों में बदलना

  prime[a]*prime[b]*prime[c]*... 

तो आप एक बिगनम्बर के रूप में सेट को सांकेतिक शब्दों में बदलना BigNumbers के साथ ऑपरेशन, इस तथ्य के बावजूद कि वे इंटिजर के संचालन की तुलना में धीमी गति से अभी भी बहुत तेज हैं

2 सेट ए, बी को एकजुट करने के लिए, आप लें

  UNITE(A, B) = lcm(a, b) 

ए और बी के सबसे कम-कॉमन-मल्टी टू ए और बी के सेट और दोनों नंबर हैं।

प्रतिच्छेदन करने के लिए आप लेते हैं

  INTERSECT(A, B) = gcd (a, b) 

महत्तम सामान्य भाजक।

और इसी तरह।

इस एन्कोडिंग को गॉडलाइज़ेशन कहा जाता है, आप अधिक के लिए Google कर सकते हैं, फ़्रीगे के तर्क का उपयोग करते हुए लिखे गए सभी अंकगणित शब्दों को इस तरह से संख्याओं का उपयोग करके एन्कोड किया जा सकता है।

आपरेशन के लिए सदस्य है? यह बहुत ही सरल है —

 ISMEMBER(x, S) = remainder(s,x)==0 

कार्डिनल पाने के लिए यह थोड़ा अधिक जटिल है –

 CARDINAL(S) = # of prime factors in s 

आप नंबर एस को प्रमुख कारकों के उत्पाद में सेट का प्रतिनिधित्व करते हैं और उनके घाटों को जोड़ते हैं। यदि सेट डुप्लिकेट की अनुमति नहीं देता है तो आपके पास सभी एक्सपोनेंट 1 होंगे।

कोई मानक लाइब्रेरी कॉल नहीं हैं, लेकिन आप ExSwift लाइब्रेरी को देखना चाह सकते हैं। इसमें अंतर, प्रतिच्छेदन और संघ सहित एरे पर नए फ़ंक्शन का एक गुच्छा शामिल है

आप उद्देश्य-सी के समान पैटर्न का अनुसरण करना चाह सकते हैं, जिसमें भी ऐसे कार्यों की कमी है, लेकिन एक सरल उपाय है:

उद्देश्य सी में दो सरणियों को कैसे छेदना है?