विजुअल बेसिक में mutex का उपयोग कैसे करें

मैंने kernel32 लाइब्रेरी आयात की है। इसलिए, मेरे पास createMutex फ़ंक्शन उपलब्ध है लेकिन मुझे विभिन्न मानकों और वापसी मूल्यों के बारे में बिल्कुल यकीन नहीं है।

यह क्लासिक विजुअल बेसिक है, Visual Basic.NET नहीं, लेकिन शायद मैं किसी भी भाषा के साथ उत्तर के रूप में काम कर सकता हूं।

0
जोड़ा संपादित
विचारों: 1
एक्सकेसीडी के निर्माता रसेल मुनरो, ने अपनी पुस्तक, व्हाट इफ में एक अध्याय, लोनेलिएस्ट ह्यूमन है। वह जवाब देने का प्रयास करता है, "हर दूसरे जीवित व्यक्ति से अब तक का सबसे दूर इंसान क्या रहा है?" वह अपोलो अंतरिक्ष यात्री नामित करता है जो चंद्रमा की लैंडिंग के दौरान चंद्र कक्षा में रहते थे, संभवतः एक अकेला पॉलीनेशियन नाविक, और स्कॉट के अंटार्कटिक अभियान के अंतिम जीवित सदस्य थे।
जोड़ा लेखक Gerry Myerson, स्रोत
@GerryMyerson, मुझे लगता है कि वह अब रैंडल द्वारा चला जाता है।
जोड़ा लेखक The Masked Avenger, स्रोत
@The, हाँ, मुझे नहीं पता कि मैं क्या सोच रहा था। यह रैंडल है।
जोड़ा लेखक Gerry Myerson, स्रोत

7 उत्तर

This paper gives an O(n log n) algorithm for the "all-nearest-neighbors" problem: given a set of points S, find all the values m(p) where p is a point of S and m(p) is the minimum distance from p to a point of S \ {p}. Then the "loneliest point" is the point p which maximizes m(p). So your problem can be solved in O(n log n) time, which is pretty good.

(यदि यह स्पष्ट नहीं है, तो मैं अपने एल्गोरिदम को आर ^ 3 के अंदर रहने के रूप में देखे गए बिंदुओं के सेट पर लागू कर रहा हूं, इस तथ्य का उपयोग करके कि क्षेत्र के साथ दूरी के बीच एक आदेश-संरक्षण संबंध और आर ^ 3 में सीधी रेखा दूरी है ।)

24
जोड़ा

आइए हम उम्मीदवार के साथ आते हैं, "अब तक का सबसे अकेला व्यक्ति", और प्रत्येक चरण में बहुत से लोगों को बुझाया जो हम देख सकते हैं अकेले नहीं हैं।

यादृच्छिक रूप से एक व्यक्ति को चुनें, और उनकी "अकेलापन" की गणना करें। चूंकि वे पहले हैं, वे अब तक अकेले अकेले व्यक्ति हैं।

अब चलिए एक नए उम्मीदवार की खोज शुरू करते हैं। यादृच्छिक रूप से एक व्यक्ति को चुनें, हमारे वर्तमान रिकॉर्ड अकेलेपन में सभी को ढूंढें। या तो यह सेट खाली है, या नहीं। यदि यह खाली है, तो हमें एक नया अकेला व्यक्ति मिला है, उनकी अकेलापन की गणना है, और जारी है। अन्यथा, उस गेंद में सभी को खुश के रूप में चिह्नित करें, जिसका अर्थ है कि हम उन्हें उन लोगों के पूल से हटाते हैं जिन्हें हम यादृच्छिक रूप से नमूना देते हैं (लेकिन अकेलेपन की भविष्य की गणना से नहीं)।

यह अंततः अकेला व्यक्ति पाता है।

इससे पहले कि हम सोचें कि यह कितना कुशल है, आइए ऑप्टिमाइज़ेशन करें। वैकल्पिक रूप से, दुनिया का बहाना एक धड़ है (एक अच्छी परंपरा के बाद; मौसम पूर्वानुमान के बारे में बात करते समय अर्नाल्ड के क्लासिकल मैकेनिक्स फुटनोट में ऐसा करते हैं)। हमेशा के रूप में, यह आवश्यक नहीं है।

अब, शुरू करने से पहले, सभी को दो सूचियों में, एक अक्षांश और एक देशांतर द्वारा क्रमबद्ध करें। अब हम प्रत्येक जोड़ी-वार दूरी का मूल्यांकन किए बिना, कुछ त्रिज्या के भीतर कुशलता से सभी को खोजने के लिए इसका उपयोग कर सकते हैं। हम एक नए उम्मीदवार की अकेलापन की गणना, दूसरे चरण में भी सुधार कर सकते हैं।

आखिरकार, दूसरे विचारों पर मैंने फैसला किया है कि वास्तव में इस एल्गोरिदम की जटिलता को काम करने की तरह लगता है कि अभी बहुत अधिक काम है। :-)

7
जोड़ा

इसे कम्प्यूटेशनल ज्यामिति में "सबसे बड़ी खाली सर्कल समस्या" कहा जाता है, और इसमें एक ओ (एन लॉग एन) समाधान होता है बशर्ते आपको बिंदुओं और संबंधित वोरोनोई आरेखों का उत्तल होल दिया जाए। यहां समस्या पर एक बहुत ही पठनीय पेपर है।

6
जोड़ा

आपकी समस्या को सुधारना संभव हो सकता है ताकि " दूरी-आधारित बाहरी " एल्गोरिदम लागू होंगे।

2
जोड़ा

खैर, दस्तावेज़ के आधार पर ऐसा लगता है :

  1. सुरक्षा गुण (शून्य पास हो सकते हैं)
  2. चाहे वह प्रारंभ में स्वामित्व में हो (चाहे गलत हो)
  3. इसका नाम

HTH

0
जोड़ा

CreateMutex के लिए वीबी 6 घोषणाएं यहां दी गई हैं - मैंने अभी कॉपी की है उन्हें एपीआई व्यूअर से, जो आपके वीबी 6 इंस्टॉलेशन के हिस्से के रूप में होना चाहिए। वीबी 6 मार्शल वर्तमान कोड पेज का उपयोग कर एनएलएसआई को समाप्त कर देता है।

Public Type SECURITY_ATTRIBUTES
   nLength As Long
   lpSecurityDescriptor As Long
   bInheritHandle As Long 
End Type

Public Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" _
   (lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, _
    ByVal lpName As String) As Long

ध्यान रखें कि यदि आप वीबी 6 आईडीई से म्यूटेक्स बनाते हैं, तो म्यूटेक्स आईडीई से संबंधित है और जब आप अपना प्रोग्राम चालू करना बंद कर देते हैं तो नष्ट नहीं किया जाएगा - केवल तभी जब आप आईडीई बंद करते हैं।

0
जोड़ा

बस त्रिकोण के जाल में अंक विभाजित करें। सतही बिंदुओं सहित पूरे क्षेत्र को विभाजित किया जा सकता है जैसे कि आबादी इसे पी 3 से विभाजित कर दे। (मैंने अन्य मामलों के लिए एक प्रकाशन लिखा है ड्यूशन मैथमैटिका खंड 127.6 में) तो उस पेपर में प्रत्येक किलोबाइट का वर्णन न करने के लिए, अब आप प्रत्येक वेक्टर के साथ किसी अन्य व्यक्ति से 'दूरी' के साथ वैक्टर रिक्त स्थान की एक्स मात्रा पर कैलकुस का उपयोग कर सकते हैं। यू तो **** अधिकतम *** ऐसे त्रिकोण (3 वेक्टर) पा सकते हैं

0
जोड़ा
यदि आपके पास साहित्य के स्पष्ट संदर्भ हैं जो मदद करेंगे, तो उन्हें पूर्ण रूप से देने के लिए बेहतर होगा। (हम उपयोगकर्ताओं को उनके वास्तविक नामों का उपयोग करने के लिए प्रोत्साहित करते हैं, हालांकि यह निश्चित रूप से एक आवश्यकता नहीं है।)
जोड़ा लेखक Todd Trimble, स्रोत