Rep kapağı olmadan itibarınız ne olurdu?


16

Bu meydan okumada, itibar sınırı PPCG'de mevcut değilse, itibarınızın ne olacağını hesaplayacaksınız.

Adresdeki itibar değişiklikleri için ham verilere herkes erişebilir: codegolf.stackexchange.com/reputation . Ham veriler böyle bir kurulum izler (bunlar sayfamın sürümünün ilk birkaç satırıdır.

total votes: 2955
-- bonuses   (100)
 2     37663 (10)
-- 2014-09-11 rep +110  = 111       
 2     41751 (10)
-- 2014-11-23 rep +10   = 121       
 2     41751 (10)
 2     41751 (10)
-- 2014-11-24 rep +20   = 141       

İlk satır, bu zorluk için önemsizdir (tüm yanıtlarınız ve sorularınız için aldığınız toplam oy sayısını gösterir). İkinci satır "İlişki bonusu" nu gösterir. Bonusunuz yoksa o satır orada olmayacak.

Bu iki (veya bonus yoksa) bir satırdan sonra, her gün kazanılan / kaybedilen tüm temsilcilerin bir özetinin yanı sıra soru başına itibar değişikliklerinin bir listesine sahip olacaksınız. Ayrıca o günün sonunda sahip olduğunuz toplam itibarın bir listesini alırsınız. Bu listede yalnızca itibarınızın değiştiği günler gösterilir.

Her satırın başında tanımlayıcılar vardır (günlük özet satırları hariç). Bunlar aşağıdaki olası itibar değişikliği nedenlerini temsil eder:

1 : Accept (+2 if you accept, +15 if your answer is accepted)
2 : Upvote (+5 for question, +10 for answer)
3 : Downvote (-1 if you downvote answer, -2 if you get downvoted)
4 : Offensive (-100)
8 : Give bounty
9 : Receive bounty
12: Spam (-100)
16: Approved edit (+2)

Eksik sayılar ( 5,6,7,10,11,13,14,15itibarı etkilemez).


Zorluğunuz, itibar sınırı için olmasaydı sahip olduğunuz saygınlığı hesaplamaktır.


Bunu nasıl yapacaksınız:

İçeriğini codegolf.stackexchange.com/reputationdüz metin olarak yerel olarak veya seçtiğiniz başka bir yerde kaydedin (bunun nedeni, bilgilere erişmek için oturum açmış olmanızdır). İsterseniz verileri doğrudan web sitesinden alabilirsiniz, ancak bunun çok daha uzun olacağını varsayıyorum.

Tüm olumlu ve olumsuz itibar değişikliklerini özetleyin. İtibar değişikliğine neden olmayan oylar (rep kapağı nedeniyle) şu şekilde gösterilir (normal parantezler yerine köşeli parantezlere dikkat edin):

 2    106125 [0]
 2    106125 [0]
 3    106125 [-2]
 2    106088 [2]
 2    106125 [0]
 2    106088 [0]

Kapak için olmasaydı, alacağın temsilcisi eklemelisin.

Mesaj sayısı 106125bir olan soru ise, 106088olan bir cevap . Gördüğünüz gibi, sadece tabloda verilen verileri kullanarak ikisi arasındaki farkı anlatmanın bir yolu yoktur. Bu nedenle codegolf.stackexchange.combir yayının soru veya cevap olup olmadığını kontrol etmek için web sitesine ( ) erişmeniz gerekir . Bunun için API'yı da kullanabilirsiniz.


Kurallar:

  • Herkes betiğinizi şu şekilde çalıştırabilmelidir:
    • Kendinizle karşılaşmamış olsanız bile, tüm farklı itibar değişikliği türlerini eklemeniz gerekir.
    • İlişkilendirme bonusu almamış olsanız bile kodun çalışması gerekir (almadıysanız hat orada olmaz)
    • Lisansı olmayanlar kodu çalıştırabildiği sürece, özgür olmayan dilleri (Mathematica, MATLAB vb.) Kullanabilirsiniz.
    • Ham verileri sağlamanız gerekmez, çünkü herkes kodunuzu sayfanın kendi sürümünde test edebilir (sonuçları yine de paylaşmanız ilginç olacaktır, ancak bu isteğe bağlıdır).
  • API'yı kullanabilir veya doğrudan web sitesine erişebilirsiniz. url kısaltıcılarına izin verilmez.
  • Rep kapağı olmadan sahip olabileceğiniz temsilcisi bulmanın başka yolları varsa, onu kullanamazsınız. Bahsedilen sayfadaki verileri kullanmalısınız.

Yanıt olan gönderilerin URL'ye farklı bir uzantı aldığını unutmayın:

/codegolf/106088        // Answer: Notice the end of the url
/codegolf/106079/detect-ms-windows/106088#106088

/codegolf/106079/       // Question: Notice the end of the url
/codegolf/106079/detect-ms-windows

Çıktı:

Çıktı şöyle olmalıdır:

Rep w cap: 15440
Rep w/o cap: 16202

Biçim isteğe bağlıdır, [15440,16202]kabul edilir. Rep w capdoğrudan satırdan alınabilir: ** total rep 15440 :)sayfanın altına yakın.


Bu yani bayt en kısa kodu kazanır.



4
751. Beni ve hayatımı soy
Christopher

2
lol daha önce repcap hiç vurmadım.
HyperNeutrino

Sadece açıklığa kavuşturmak için, kapaklı itibarınız toplam temsilcinizin toplamıdır ve itibar köşeli parantez içinde değişir mi?
Graviton

Yanıtlar:


3

Perl 5 (kıvrımlı), 209 + 1 (-n bayrağı) = 210 bayt

if(/([0-9]+)\s*([0-9]+) \[([0-9]*)/){$_=`curl /codegolf//a/$2`;@p=(2,5,-1);$p[15]=2;@s=(13,5,-1);$x=$1;$r+=($p[--$x]//-100)-$3;$r+=$s[$x]if/#/;};$t=$1 if/([0-9]+) :/;END{say$t,$",$r+$t}

Bir yanıtın URL'sinin bir değeri olduğu gerçeğini kötüye kullanır #. Eğer stderr ilerleme çubukları ile sular altında sevmiyorum -ssonra bir bayrak ekleyebilirsiniz curl. Daha çeşitli bir itibar sayfası test eden birini takdir ediyorum - hiçbir şey kaçırmadım emin olamaz.

Benimki bu arada 421 ve 451 olacaktı.


Daha önce Perl'i hiç kullanmadım ve ham verileri nereden aldığını göremiyorum. Bunu test etmek istersem ham verileri nereye koyacağım? Not: Windows 10'da Strawberry kullanıyorum. Unix veya OS X'im yok. Buna nasıl diyebilirim?
Stewie Griffin

@Stewie Griffin Stdin'den ham verileri okur. Kod tek satırlıdır ve böyle bir şey yürütülmelidir perl -nE 'code' < filename. Windows'ta bazı farklı alıntılar yapmaktan ve kaçmak zorunda kalabilirsiniz, oradaki ortama çok aşina değilim.
Chris

Küçük optimizasyonu: Kaldırabileceğiniz https://geçtiğiniz takdirde -Lo 301 yönlendirmesi takip etmesine, kıvrılma bayrağını
markasoftware

@Markasoftware Gerçek sayfaya birden çok yönlendirmeyi izleyecek, değil mi? Olduğu gibi, kodum /codegolf//a/$2sayfanın kendisinden 301 yönlendirmesini ayrıştırır .
Chris

Bunu Search pattern not terminated at -e line 1.denediğimde anladım. Ben sadece perl -nE ..geçerli çalışma dizinine dosya kaydederken, açıklama ( ) yazdıklarınızı kullanarak tüm kodu yapıştırın . Bunun neden olabileceğine dair bir fikrin var mı?
Stewie Griffin
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.