Geri sayım numaralarının adı yuvarlak problem ve algoritmik çözümler?


10

Seyircilerdeki İngiliz olmayanlar için, yarışmacıların bir dizi 6 sayı ve rastgele oluşturulmuş bir hedef sayıya sahip olduğu gündüz bir oyun şovunun bir bölümü var. Sadece aritmetik işleçleri kullanarak 6 sayıdan herhangi birini (ancak hepsini değil) kullanarak hedef sayıya ulaşmak zorundadırlar. Tüm hesaplamalar pozitif tamsayılarla sonuçlanmalıdır.

Bir örnek: Youtube: Geri Sayım - Şimdiye Kadarki En Sıradışı Sayılar Oyunu?

Wikipedia'da ayrıntılı bir açıklama verilmiştir: Geri sayım (Oyun Gösterisi)

Örneğin:

  • Katılımcı 6 sayı seçer - iki büyük (olasılıklar 25, 50, 75, 100 içerir) ve dört küçük (her biri havuza iki kez dahil olan 1 .. 10 sayıları).
  • Aldı sayılar vardır 75, 50, 2, 3, 8, 7hedef numarası ile verilmiştir 812.
  • Bir deneme (75 + 50 - 8) * 7 - (3 * 2) = 813 (Bu, hedefin 5 içindeki bir çözüm için 7 puan alır)
  • Kesin bir cevap (50 + 8) * 7 * 2 = 812 (Bu, hedefle tam olarak eşleşen 10 puan olurdu).

Açıkçası bu sorun TV'nin ortaya çıkmasından önce vardı, ancak Wikipedia makalesi bir isim vermiyor. Ayrıca bu oyunu, sınıflar arası bir yarışma olarak oyunun "Crypto" olarak adlandırıldığı bir ilkokulda gördüm - ama şimdi aramak hiçbir şey açığa çıkarmıyor.

İçinde bir kaç kez yer aldı ve babam kaba kuvvet problemi teşebbüs olduğu bir Excel elektronik tablosunu yazdım, ben (yalnızca o nasıl çalıştığını hatırlamıyorum vermedi eser ne Excel'in 65535 satır limitli) fakat elbette problem için algoritmik bir çözüm bulunmalıdır. Belki de insan bilişinin yaptığı gibi çalışan bir çözüm vardır (örneğin 'yeterince yakın' sayıları bulmak için paralel, daha sonra adayları almak ve 'daha küçük' operasyonlar yapmak).


1
Bunu grafik olarak çözdüm - bu sayılarda yapılabilecek işlemleri temsil etmek için hesaplamaların ve kenarların sonuçlarını temsil etmek için düğümleri kullanın, sonra istenen yolu bulmak için bir grafik arama algoritması kullanın
ell

1
Kuralların okunmasından, mükemmel bir çözüme ulaşmak mümkün görünmemektedir - örneğin seçilen sayılar (1, 1, 2, 2, 3, 3) ve hedef sayı 999 ise. herhangi bir algoritmanın hedefi mümkün olan en yakın çözümü bulmak olacaktır.
Rich Smith

1
@ell: Grafik arama çözümünüz temelde kaba kuvvet araması mı?
Martin

Uygulamamda önce derinlemesine bir arama kullandım, ama Dijkstra gibi bir şeyin neden kullanılamadığını anlamıyorum.
ell

1
Biz Devletleri'nde bazı benzer gösteriler var: Biz birkaç hafta bir evde yaklaşık 6 alt okuryazar salak sopa ve onları birbirleri hakkında konuşmak ve bağırmaya filme de birbirlerini. Bu, televizyonumuzun popüler şovlarda bu entelektüel bir şeye yaklaşması kadar yakın.
RBarryYoung

Yanıtlar:


4

Feragatname: Bu cevap bu soruya tamamen cevap vermez. Ama yorum yapmak için çok uzun.

NP-zor? Bu sorunun NP zor olabileceğine inanıyorum .

Sırt Çantası sorununun özel bir örneğini düşünün :

Bir pozitif tamsayı kümesi ve bir pozitif tamsayı b verildiğinde, o alt kümedeki tüm tamsayıların toplamı b'ye eşit olacak şekilde kümenin bir alt kümesi var mı?

Bu, Geri Sayım sorunumuza biraz benziyor ve çok daha basit görünüyor. Bununla birlikte, Knapsack (ve bu özel Knapsack vakası) NP-zordur (ve elbette NP-tamamlandı).

Geri sayımın NP-zor olduğunu kanıtlamak için bunu başaramadım. Bölümden kurtulamadım. Bin 2, ve b = 7 olduğunu düşünün . Bu asla Knapsack ile çözülemez, ancak her zaman (?) Geri Sayım ile, en azından sorunu aktarmaya çalıştığım tüm yollarla.

Geri sayım gerçekten Şimdi, eğer oldu NP-zor, biz tüm olanakları çalışırken kaba kuvvet önemli ölçüde daha fazla verimlidir algoritması falan olasılığı çok yüksek olduğunu anlamak olabilir. (Ve eğer böyle bir algoritma bulursak, çok ünlü olacağız.)

Hayır, etkili bir algoritma olması gerektiğini düşünmüyorum .

Sezgisel. Soruya bağlanan Youtube videosunun güzel bir örneği var: Yarışmacı tam bir cevap buldu 952 = ((100 + 6) * 3 * 75 - 50) / 25. Bu tamamen sezgime karşı, bunu asla denemezdim İlk kez: Çok fazla sayıda üretin, sonra bölün ve sonucu verin.

Öte yandan, insanlar üç basamaklı bir sayıya ulaşmak için denememiz gerekmediğini düşünüyoruz (rastgele örnek) 50 * 75 * 100/2/3/7. Ancak bilgisayarlar hiçbir şey hissetmezler , basit hesaplarlar.

Sonuçta, bazı sezgisel tarama uygularsak ve bu sezgisel tarama tam bir çözüm bulamazsa, gerçekten hiçbir şey olmadığından emin olmak için diğer tüm çözümleri denememiz gerekecek.

Youtube videosundaki yarışmacının yaptığı şey, bence, çok sayıda olasılığı çok hızlı bir şekilde kontrol etmek ve bir çözüm vermeyecek (veya muhtemelen yapmayacak) olanları hızla atmaktır.

Sonuç. Bir algoritma uygularken, a / b / c = a / (b * c) gibi eşit hesaplamaları çıkarmaya dikkat edebiliriz, ancak bunun oldukça zor olduğunu düşünüyorum ve bunun çalışma zamanını önemli ölçüde iyileştirip iyileştirmediğini bilmiyorum.

Bilgisayarlar elbette çok sayıda olasılığı kontrol etmede insanlardan daha hızlıdır. Ve günümüzde, akıllı telefonlar bile o kadar hızlıdır ki, sanırım, bir saniye içinde tüm olasılıkları deneyerek. (Bunu test etmedim.) Sadece altı sayı var, örneğin 60 tane olsaydı farklı olurdu.


Örneğe çözüm, son derece etkileyici olsa da, ilk göründüğü kadar karmaşık değildir. Düşünme süreci, denemiş olabileceği daha belirgin şeyler, muhtemelen (100 + 6) * 3 * 75/25 aracılığıyla yapabileceğim (100 + 6) * 9 kullanarak 954'e ulaşabilirim. Ben 50 kaldı ve 50/25 iki, bu yüzden 25 "bölmeden önce 50 kapalı (100 + 6) * 3 * 75 alabilir.
Tim Down

1

Bir algoritma aslında çok zor değil.

İki a ve b sayısı verildiğinde, a + b, abs (a - b) sonuçlarını üretebiliriz (negatif sayılara izin verilip verilmediğini bilmiyorum, bu durumda a - b ve a + b üretebiliriz), a * b ve sonuç bir tamsayı ise muhtemelen a / b veya b / a olabilir. Dolayısıyla, olası sonuçlar en fazla beş sayı kümesidir. Bu seti S (a, b) olarak adlandırın.

Altı sayı a, b, c, d, e ve f alın.

İki sayının her bir alt kümesi için üretebilecekleri sayıları bulun.

Daha sonra üç sayının her bir alt kümesi için üretebilecekleri sayıları bulun: S (a, b, c) = S (S (a, b), c) sendika S (S (a, c), b) sendika S ( S (b, c), a).

Daha sonra 4 veya 5 sayının her bir alt kümesi için, ardından 6 sayının tümü için aynı.

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.