Değişken problem boyutları ile zorlukları nasıl değerlendirebilirim?


21

Bu soruların özel ve cevaplanabilir olması koşuluyla, ana konu üzerinde sorunlu yazma sorularına meta konusunda oldukça güçlü bir destek bulunmaktadır . Ancak, henüz böyle bir sorumuz yok, bu yüzden suları test edeceğimi düşündüm. Bu soru muhtemelen iyi öznel, kötü öznel bölgelere giriyor , ancak bunun zorlayıcı soruların ne olması gerektiğini düşünüyorum. Hala yüksek kaliteli içerik üretmelerini sağlamak için, lütfen cevaplara vahşi spekülatif fikirler göndermeyin. Aşağıda belirtilen sorunlardan neden kaçındıklarını açıklayın veya ideal olarak geçmişte önerilen tekniği başarıyla kullanan mevcut zorlukları işaret edin.

Bazı optimizasyon zorlukları için, mücadelenin belirlenmesinde serbest bir parametre, optimize edilecek problemin boyutudur. "İyileştirme mücadelesi" ile , cevapların genellikle tam / optimal olması gerektiği ve en zorlu problem boyutunda veya ele alınabilecek en büyük problem boyutunda puanlandırıldığı türümüz gibi bir şey ifade etmiyorum. sabit bir sürede. Özellikle, altta yatan soruna asgari çözümlerin izin verildiği ve hatta muhtemel olduğu durumlarda zorlukların ve hedefin mümkün olduğu kadar iyi yapmak olduğu anlamına gelir.

Kesinlik uğruna, meşgul kunduz zorluklarını göz önünde bulundurun , ilke olarak bu, bilinen en iyi çözümleri olmayan diğer zorluk türleri için de geçerlidir (burada sadece aşağıda belirtilen sorunları daha kötü hale getirdikleri için yoğun kunduz kullanıyorum). Demek ki, en işlek Brainfuck kunduzunu bulmak için bir meydan okuma yapmak istedim. Meşgul kunduz problemlerinde serbest parametre kodun büyüklüğüdür. Bir şekilde kodun boyutuna referans yapmadan zorluğu belirleyemem. Bir şekilde, sorun büyüklüğü parametresinin her değeri Nayrı (giderek daha zor) bir mücadele verir. Asıl sorum, dengeleme problemlerine girmeden nasıl böyle bir zorlukla başa çıkabileceğim.

Bariz çözüm şu Nşekildedir: " NMümkün olduğu kadar çok sayıda karakter basabilen / mümkün olduğu kadar çok sayıda keneye basan, kaynak kod baytlı sonlandırıcı bir Brainfuck programı bulun ." Bu devasa dengeleme sorunları vardır: Ben çok küçük boyutu seçerseniz, birisi hızla bulabiliren yoğun kunduz ve meydan bitti. Boyutu çok büyük seçersem, en uygun çözüm, sonlandırmadan önce astronomik miktarda karakter basar; bu, muhtemelen bu tür programları bulmanın önemsiz olduğu ve zorluğun sabır içinde bir angarya / egzersiz haline geleceği anlamına gelir; yoğun kunduzlar programlı olarak bulunabilir ve bunun yerine insanların sonuçlarının resmi olarak kanıtlamaya başlaması gerekirdi; Tabii ki, bu problem, en uygun çözümlerin büyümesi nedeniyle diğer türlerden daha yoğun kunduz mücadelelerinde daha belirgindir, ancak yine de diğer zorluklar için de geçerlidir.

Bir sonraki seçenek Nsınırsız bırakmak ve onu bir işlev aracılığıyla puanlamanın bir parçası haline getirmek olacaktır. "Normal" zorluklar için bile, birleştirilmiş puanların dengesini doğru bir şekilde elde etmek inanılmaz derecede zordur, ancak yoğun kunduzlar için, en iyi çözümlerin Nherhangi bir hesaplanabilir işlevden daha hızlı büyümesi nedeniyle, esasen imkansızdır . Bu, var olan en iyi cevabı her zaman, yeterince Nuzun bir programa kolayca bulabildiğim ve çok fazla çaba harcamadan daha iyi bir puan alabileceğim bir program bularak bulabildiğim anlamına gelir .

Ayrıca sabit ayarlamayı Nve insanların Nart arda bağ kırıcı olarak kullanılacak daha büyükler için kunduz göndermelerine izin vermeyi de düşündüm . Bunun da benzer bir sorunu var, çünkü birisinin “eşit derecede iyi bir meşgul kunduz bulması” N, böylece bir kravat oluşturması ve daha sonra Nbüyük bir puan bulmanın daha kolay olduğu bir sonraki için hemen hemen her şeyi göndermesi yeterlidir. optimal puan zorlaşır). Bu gibi durumlarda, aynı çözümü kullanan birden fazla kişiyle nasıl başa çıkacaksınız? Yasaklamak, optimum olması durumunda da garip olurdu.

Belki bir kişi, makul bir seviyede eğitimli bir tahmin yaparak Nve ardından 5 bayt içindeki tüm boyutlar için yoğun kunduzlar isteyerek bir orta sahaya varabilir N, böylece her iki yönde de bir miktar boşluk olabilir (ve ardından ~ 10 puanını birleştirirsiniz). tek bir teknikle veya başka bir yöntemle tek) Bu da pek tatmin edici gelmiyor çünkü ilk tahminim Nhala ilginç zorluklar yaratan aralığın dışında olabilir.

TL; DR: Zorluğun, büyüklüğü değişken olan bir problemi (en üst düzeyde çözüp çözmek) olduğu durumlarda, boyutu zorluğa nasıl dahil edebilirim? İdeal olarak, insanların Nizlenebilir boyut aralığının üst sınırına yakın bir değerle çalışabilmesini isterdim . Ancak bunun için optimal çözümlerin mümkün olduğu ortaya Nçıkarsa, biraz daha büyük olan çözümler Ntartılmaya başlarsa, meydan okuma daha ilginç bir problem boyutuyla devam edebilecekse harika olur .


6
Bunu, PPCG'ye özgü olmadığı için meydan okuma soruları için bir model olarak seviyorum. "Bunu nasıl yapmalıyız?" Değil. ama "Bunu yapmak için iyi bir yol nedir?" Bu tür zorlukların bir programlama hobisi sitesinde veya şahsen yapılan bir yarışmada gerçekleştirildiğini hayal edebiliyorum.
xnor

Tldr'yi en üste koy!
Majora320

1
Sonra Majora320 ... ama değişim @ d için w :-)
Luis Mendo

Yanıtlar:


3

Bir sonraki N'yi bul

Buradaki zorluk N, gönderilerin başlaması gerektiğini göstermektedir .

O zaman, insanlar şu anda cevaplar verirlerdi N. Verilen bir sunumun optimal olduğu kanıtlanmışsa, o zaman N1 artar ve işlem tekrarlanır.

Bunu puanlamanın birkaç yolu var:

  1. Şu anki en iyi gönderiyi puanla N
  2. Mevcut olan en iyi gönderime Nbir puan verin ve her bir optimum çözüm için bir puan verin
  3. # 2 ile aynıdır, fakat verilen bir sunumun optimal olduğunu kanıtlayan kişiye de bir puan verin.

1

Sınırlı bir N içindeki çözümler için puan verin

NSabit bir sınır içinde kalmasına izin verin . Alt sınır açıkça önemsiz cevapları dışlamalı ve yüksek sınırın alt sınırdan çok uzakta olmaması gerekir.

Ardından, Nsınırlar içinde her biri için en iyi çözüme sahip olan her kişiye 1 puan verin . Daha yüksek Nise, çözümün daha zor olduğu anlamına gelirse , o zaman onlara N puan verin. (veya N'ye dayalı bir formül).

Bu yöntem, AZSPC'lerin yaptıklarına benzer , ancak kısmi puanlar verilmez.

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.