मैं अपने एमपी 3 फ़ाइलों को एक तरह से शीर्षक और कलाकार पुनरावृत्ति से बचा जाता है के लिए छद्मकोड सुझावों की तलाश कर रहा हूं । मैं क्रोनर्स सुनता हूं - फ्रैंक सिनात्रा, टोनी बेनेट, एला फिट्जगेराल्ड आदि पुराने मानकों को गाते हुए। प्रत्येक कलाकार एक ही गीत के कई रिकॉर्ड करता है - फ्लाई मी टू द मून, द वे यू लुक टुनाइट, स्टारडस्ट आदि। मेरा लक्ष्य कलाकारों और गीत शीर्षकों के बीच अधिकतम स्थान के साथ गाने (या प्लेलिस्ट का आदेश देना) है। इसलिए अगर मेरे पास 2000 गाने हैं और 20 एला के हैं तो मैं उसे हर 100 गाने में केवल एक बार सुनना चाहूंगा। अगर 10 कलाकार फ्लाई मी टू द मून गाते हैं तो मैं इसे हर 200 गीतों में एक बार सुनना चाहता हूं। बेशक मैं अपने "परम फेरबदल" बनाने के लिए इन दो आवश्यकताओं को जोड़ना चाहता हूं।
मुझे पता है कि यह एक काफी विस्तृत खुला प्रश्न है। मैंने अभी तक इसकी प्रोग्रामिंग शुरू नहीं की है इसलिए मैं सिर्फ एक अच्छे दृष्टिकोण के सुझाव लेना चाहता हूं। मेरे पास वास्तव में समान रूप से अन्य गीत विशेषताओं को रखने के संबंध में कुछ अन्य आवश्यकताएं हैं, लेकिन मैं यहां नहीं जाऊंगा।
एक प्रारंभिक बिंदु के रूप में मैं कोड को संशोधित कर रहा हूं जो मुझे एमपी 3 फ़ाइलों में हेरफेर करने और आईडी 3 टैग पढ़ने के लिए मिला है ।
मैंने एक छोटा सा ऐप लिखा है जो नीचे पार्सिफाल के उत्तर का उपयोग करके मेरी आवश्यकता को पूरा करता है। मैंने यहां एक अनुवर्ती प्रश्न भी लिखा था । सभी महान प्रतिक्रियाओं के लिए धन्यवाद!
while (length(songs) > 0) { x := rand(); addElem(shuffle, songs[x]); remElem(songs, x); }
लेकिन आप कहते हैं कि आप एक "अंतिम फेरबदल" चाहते हैं। मुझे नहीं पता कि आप वास्तव में क्या चाहते हैं, यहां तक कि सवाल भी पढ़ रहे हैं ...