2011-01-31 6 views
14

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

मुझे ऐसे तीन प्रोग्राम पता हैं, लेकिन जावा में नहीं। मैंने उन सभी की कोशिश की, लेकिन वे वास्तव में मेरे लिए काम नहीं कर रहे हैं (जो कि आश्चर्यजनक है क्योंकि उनमें से एक एनआईएसटी द्वारा है)। उनमें से सबसे पुराना, diehard, ठीक काम करता है, लेकिन इसका उपयोग करना मुश्किल है।

+0

क्या परीक्षण आप विशेष रूप से चलाने के लिए देख रहे हैं? – jzd

+4

आपको यह जानने की आवश्यकता क्यों है? क्या आप यह देखने की कोशिश कर रहे हैं कि फ़ाइल को और संपीड़ित किया जा सकता है या नहीं? यह एक अच्छा सवाल है, मैं सिर्फ उत्सुक हूँ। : डी –

+3

http://cstheory.stackexchange.com/questions/569/best-way-to-determine-if-a-list-of-bytes-are-random –

उत्तर

4

जैसा कि कुछ टिप्पणीकारों ने कहा है, यह वास्तव में एक विशेषज्ञ गणित समस्या है। सरल व्याख्या मैं तुम्हारे लिए मिल सकता है है:

Run Tests for Non-randomness

Autocorrelation

यह दिलचस्प है, लेकिन जैसा कि इसे इस्तेमाल करता है के सिर या पूंछ 'इसके उदाहरण आसान बनाने के लिए, आप मिल जाएगा आप ज्यादा जाने की जरूरत है एन्क्रिप्शन/क्रिप्टोग्राफी इत्यादि के लिए एक ही सिद्धांत को लागू करने के लिए गहरा - लेकिन यह एक अच्छी शुरुआत है।

+0

इस पृष्ठ पर निर्दिष्ट लोगों में से ऑटोकॉर्पोरेशन शायद लागू करने के लिए सबसे आसान है। – biziclop

+0

@biziclop: धन्यवाद, मैंने अपने उत्तर का सीधा लिंक जोड़ा है। – Mikaveli

1

एक और दृष्टिकोण Fuzzy logic का उपयोग करेगा। आप डेटा के सेट से अस्पष्ट सहयोगी नियम निकाल सकते हैं।/"फजी साहचर्य निकालने

अगर एक तो बी, उदाहरण के लिए व्याख्या की" यदि 01101 (मौजूद है) तो 1111 (का पालन करेंगे) "

Googling" फजी डाटा माइनिंग ": उन नियमों मूल रूप से रूप में निहितार्थ हैं नियम "आपको पर्याप्त परिणामों से अधिक पैदा करना चाहिए।

आपकी समस्या डोमेन काफी बड़ा है, असल में, क्योंकि यह डेटा/टेक्स्ट खनन के बारे में है। वह, और सांख्यिकीय & संयोजक विश्लेषण, बस कुछ नाम देने के लिए।

एक प्रोग्राम के बारे में जो यह करता है - this पर एक नज़र डालें।

1

आपके प्रश्न का उत्तर इतना नहीं है कि आपकी टिप्पणी के लिए "any observable pattern is bad"। जिसने मुझे यह सोचा कि यादृच्छिकता समस्या नहीं बल्कि अवलोकन करने योग्य पैटर्न थी, और इस समस्या से निपटने के लिए निश्चित रूप से आपको पर्यवेक्षकों की आवश्यकता है। तो, संक्षेप में, बस एक वेबसाइट स्थापित करें और इसे भी संसाधन बनाएं।

इस तकनीक के कुछ उदाहरणों में रंग नामकरण करने के लिए लागू: http://blog.xkcd.com/2010/05/03/color-survey-results/ और http://www.hpl.hp.com/personal/Nathan_Moroney/color-name-hpl.html

संबंधित मुद्दे

 संबंधित मुद्दे