2016-09-12 11 views
6

The Genuine Sieve of Erastosthenes पेपर पर, लेखक चलनी के आकार पर पहले एन प्राइम्स की जांच गुणकों को छोड़ने के लिए परिमित आकार के एक चक्र का उपयोग करता है। उदाहरण के लिए, आदेश 2, 3 के गुणकों जाँच से बचने के लिए, आप 5 पर शुरू कर सकते हैं, और बारी-बारी से 2 जोड़ सकते हैं और 4. यह नीचे wheel 2 है:क्या चावल को आलसी बनाना संभव है?

-- wheel 0 = ([2],[1]) 
-- wheel 1 = ([3,2],[2]) 
-- wheel 2 = ([5,3,2],[2,4]) -- "start at 5, add 2, 4, 2, 4..." 
-- wheel 3 = ([7,5,3,2],[4,2,4,2,4,6,2,6]) 

उसका पहिया पूरी तरह से sieving प्रक्रिया के स्टार्टअप पर उत्पन्न होता है । यह एक ट्रेडऑफ प्रस्तुत करता है, क्योंकि बड़े पहियों को अधिक स्मृति की आवश्यकता होती है। मुझे पहिया पीढ़ी के पीछे अंतर्निहित तंत्र मिल रहा है, हालांकि। इसकी स्पष्ट रूप से दोहराव वाली प्रकृति को देखते हुए, मुझे आश्चर्य है कि "अनंत चक्र" बनाना संभव होगा, जैसे चलनी की तरह, खुद को एक धारा के रूप में प्रस्तुत किया गया? यह धारा, मुझे लगता है, सूचियों के अनुक्रम की सीमा [1], [2], [2, 4], [4, 2, 4, 2, 4, 6, 2, 6]... - और शायद primes के कार्यान्वयन के रूप में कार्य करेगी।

+7

मुझे लगता है कि "अनंत चक्र" अनिवार्य रूप से सिलाई प्रक्रिया है। – ErikR

+2

पेपर से: "* मैं पाठकों के लिए एक मनोरंजक अभ्यास के रूप में उन पहियों को उत्पन्न करने के लिए बड़े पहियों के साथ प्रयोग छोड़कर कोड लिखूंगा। *" - अच्छी तरह से किया गया :-) – Bergi

+0

@ErikR क्या आप निश्चित हैं? यह एक अलग श्रृंखला [1, 2, 2, 4, 2, 4, 2, 4, 6, 2, 6, 4, 2, 4, 6] (https://oeis.org/A001223) जैसा दिखता है, इसलिए यह अलग पैदावार विशेषताओं हो सकता है। – MaiaVictor

उत्तर

1

जैसा कि बाकुरी कहते हैं, व्हील अनुक्रम की कोई सीमा नहीं है। "अनंत चक्र" जैसी कोई चीज़ नहीं है, मैं यह दिखाने की कोशिश करूंगा कि क्यों।

हम पहले प्रधानमंत्री संख्या p_1 पता है, ..., p_n, हम केवल संख्या है कि उन्हें करने के लिए कर रहे coprime के बीच अगले वाले खोज करने के लिए की जरूरत है:

isCoprime :: [Int] -> Int -> Bool 
isCoprime ps x = all (\p -> x `mod` p /= 0) ps 

सेट coprime (p_1 ,. .., p_n) है (p_1 ... p_n) -पीरियोडिक (x इसके अंदर है अगर केवल और यदि x + p_1 ... p_n इसके अंदर है), तो हम इसे एक पहिया कहते हैं।

आप इस कॉप्रिम सेट की सीमा के लिए पूछ रहे हैं, क्योंकि हम अधिक से अधिक प्राइम संख्या p_i लेते हैं। हालांकि, पीआरएन के नीचे कोप्रिम (पी_1, ..., पी_एन) में एकमात्र संख्या है 1. यह साबित करने के लिए, इस प्रकार का एक प्रमुख कारक p_i में से एक होगा।

इसलिए प्राइम की संख्या अनंतता तक जाती है, तो कॉप्रिम (पी_1, ..., पी_एन) 1 और पी_एन के बीच एक विशाल खाली छेद छोड़ देता है। एकमात्र सीमा जिसे आप सोच सकते हैं, इसलिए खाली सेट है: कोई अनंत चक्र नहीं है।

+0

मुझे एहसास हुआ कि कोई अनंत कुएं नहीं है। लगातार पहियों के समामेलन की एक अनंत सूची है, जो टिप्पणियों पर ध्यान देने के रूप में यह 'अंतराल' है। – MaiaVictor

+0

आप व्हील 532 और व्हील 7532 क्यों जोड़ेंगे? यह आपको एक पहिया नहीं देता है। –

+0

मैं बस सोच रहा था कि अगर 'अंतराल' अनुक्रम उत्पन्न करने का एक आसान तरीका था (जो पहियों का समापन है), तो यह हमें 'प्राइम्स' का नया कार्यान्वयन दे सकता है। – MaiaVictor

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