«recursion» etiketlenmiş sorular

Kendilerinin "daha küçük" örnekleri kullanılarak ifade edilen işlevler, algoritmalar veya veri yapıları gibi nesneler hakkında sorular.

4
Kuyruk özyineleme nedir?
Genel özyineleme kavramını biliyorum. Bataklık algoritması çalışırken kuyruk özyinelemesi kavramına rastladım . Bu hızlı sıralama algoritmasının MIT'den 18: 30 saniyede videoda profesör, bunun bir özyinelemeli özyinelemeli algoritma olduğunu söylüyor. Bana kuyruk özyinelemenin gerçekte ne anlama geldiği açık değil. Birisi kavramı uygun bir örnekle açıklayabilir mi? Burada SO topluluğu tarafından verilen …

5
Yineleme Recursion'un yerini alabilir mi?
Yığın Overflow'u görüyordum, örneğin, burada , burada , burada , burada , burada ve bazılarında "yinelemeyi kullanan herhangi bir programın yalnızca yinelemeyi kullanan bir programa dönüştürülebileceğini" söylemek istemiyorum. Evet, bunun mümkün olduğunu söyleyen son derece yükseltilmiş bir cevabı olan çok iyi bir iş parçacığı bile vardı . Şimdi yanlış olduklarını …

6
GCD için en verimli olan nedir?
Euclid'in algoritmasının, GCD'yi (büyük ortak bölen) bir pozitif tamsayı listesinden almak için en iyi algoritma olduğunu biliyorum. Ancak pratikte bu algoritmayı çeşitli şekillerde kodlayabilirsiniz. (Benim durumumda Java kullanmaya karar verdim, fakat C / C ++ başka bir seçenek olabilir). Programımda mümkün olan en verimli kodu kullanmam gerekiyor. Özyinelemeli modda, şunları …


2
Yuvalanmış bileşenler içeren endüktif tip üzerinde özyinelemeli tanımlar
Yuvalanmış, ancak kesinlikle olumlu bir yerde bazı yinelemeli olaylara sahip bir endüktif türü düşünün. Örneğin, çocukları depolamak için genel liste veri yapısı kullanan düğümlerle sonlu dallara sahip ağaçlar. Inductive LTree : Set := Node : list LTree -> LTree. Ağaçlar ve ağaç listeleri üzerinde tekrarlayarak bu ağaçlar üzerinde özyinelemeli bir …

3
Döngüler neden yinelemeden daha hızlı?
Uygulamada, herhangi bir özyinelemenin bir döngü olarak yazılabileceğini (ve tersi (?)) Anlıyorum ve gerçek bilgisayarlarla ölçersek, döngülerin aynı sorun için özyinelemeden daha hızlı olduğunu buluyoruz. Fakat bu farkı yaratan herhangi bir teori var mı yoksa esas olarak emprik mi?

2
Y birleştiricisi Curry-Howard yazışmalarıyla çelişiyor mu?
Y birleştiricisi türüne sahiptir . Curry-Howard Yazışması ile, tipinde yerleşim olduğu için, gerçek bir teorime karşılık gelmelidir. Bununla birlikte, her zaman doğrudur, bu nedenle Y birleştiricisinin türü , her zaman doğru olmayan teoremine karşılık gibi görünür . Bu nasıl olabilir?( a → a ) → a(bir→bir)→bir(a \rightarrow a) \rightarrow a( …

3
Bir ağaç özyineleme, yığın veya kuyruk olmadan ve sadece bir avuç işaretçi olmadan geçilebilir mi?
Yarım on yıl önce, profesörün özyineleme, bir yığın, kuyruk, vb. (Veya benzer herhangi bir veri yapısı) ve sadece birkaç işaretçi kullanmadan bir ağaçtan geçebilmesi durumunda profesörün ekstra kredi sunduğu bir veri yapıları sınıfında oturuyordum. Sonunda profesör tarafından kabul edilen bu soruya açık bir cevap olduğunu düşündüğüm şeyi buldum. Aynı bölümde …

2
Bu program her Tamsayı için sona erecek mi?
GATE Hazırlığı için Parça Testinde bir soru vardı: f(n): if n is even: f(n) = n/2 else f(n) = f(f(n-1)) "Tüm tamsayılar için sonlanacak" yanıtını verdim, çünkü bazı negatif tamsayılar için bile Yığın Taşma Hatası olarak sonlanacak . Ancak arkadaşım, bu kod ve sadece sahte kod uygulanmadığından, bazı negatif tamsayılarda …

2
Eksilerin hangi özelliği kuyruk özyineleme modulo eksilerini ortadan kaldırmaya izin verir?
Bir çağrının doğrudan sonucunu veren işlevlerin yinelemeli döngüler olarak yeniden yazılabileceği temel kuyruk özyineleme ortadan kaldırılması fikrine aşinayım . foo(...): # ... return foo(...) Ayrıca, özel bir durum olarak, özyinelemeli çağrı bir çağrıya sarılırsa işlevin yeniden yazılabileceğini de anlıyorum cons. foo(...): # ... return (..., foo(...)) Hangi özellik buna consizin …

6
Gelişmiş özyinelemeli algoritma örnekleri
Ünlü deterministik doğrusal zaman seçim algoritmasını (medyan algoritmasının medyanı) bir arkadaşına açıklıyordum . Bu algoritmadaki özyineleme (çok basit olsa da) oldukça karmaşıktır. Her biri farklı parametrelere sahip iki özyinelemeli çağrı vardır. Böyle ilginç özyinelemeli algoritmaların diğer örneklerini bulmaya çalışıyordum, ancak bulamadım. Gelebileceğim tüm özyinelemeli algoritmalar ya basit kuyruk özyinelemeleri ya …

1
Bu, özyinelemeli yordamı kuyruk özyinelemeye dönüştürmenin genel bir yolu mu?
Görünüşe göre herhangi bir özyinelemeli işlemi kuyruk özyinelemeye dönüştürmek için genel bir yol buldum : Ek bir "sonuç" parametresi ile bir yardımcı alt prosedür tanımlayın. Prosedürün dönüş değerine uygulanacakları bu parametreye uygulayın. Başlamak için bu yardımcı prosedürü çağırın. "Sonuç" parametresinin başlangıç ​​değeri, özyinelemeli işlemin çıkış noktası değeridir, böylece elde edilen …


1
Hanoi kuleleri ancak keyfi başlangıç ​​ve son yapılandırmaya sahip
Son zamanlarda, bu problemle karşılaştım , hanoi kulelerinin bir çeşidi . Sorun bildirimi: İyi bilinen problemin Hanoi Kulelerinin aşağıdaki varyasyonunu düşünün: Bazı kulelerde yığılmış boyutlarında kule ve m diskler verilmektedir . Amacınız tüm diskleri kulesine olabildiğince az hamlede aktarmak, ancak aşağıdaki kuralları dikkate almaktır:nnn1 , 2 , 3 , …

3
“Tümevarımsal” ve “özyineli olarak” çok benzer anlamları var mı?
"Endüktif" ve "özyinelemeli" çok benzer mi demek? Örneğin, belirlenen ilk k bileşenlerine dayanarak ilk k + 1 bileşenlerini belirleyerek n-dim vektörünü belirleyen bir algoritma varsa ve ilk bileşenle başlatılırsa, özyinelemeli mi yoksa indüktif olarak mı çalıştığını söyler misiniz? Ben "özyinelemeli" kullanıyorum, ama bugün birisi "endüktif" dedi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.