SORU
18 Mart 2010, PERŞEMBE


Döndürülen max veya min max kullanarak öğe Endeksi alma()/min() listesinde

Minimax algoritması için listeler üzerinde Python max min fonksiyonları kullanıyorum, ve değeri max() min() tarafından döndürülen dizin ihtiyacım var. Diğer bir deyişle, (ilk oyuncunun) ya da (ikinci oyuncu) max min değer yaratacak bilmek istiyorum.

for i in range(9):
    newBoard = currentBoard.newBoardWithMove([i / 3, i % 3], player)

    if newBoard:
        temp = minMax(newBoard, depth   1, not isMinLevel)  
        values.append(temp)

if isMinLevel:
    return min(values)
else:
    return max(values)

Min veya max değeri, değerinin gerçek dizin dönmek mümkün olmak istiyorum.

CEVAP
6 AĞUSTOS 2012, PAZARTESİ


Yaklaşık daha hızlı itemgetter ile aynı yöntemi kullanarak daha kullanabilirsiniz

def index_min(values):
    return min(xrange(len(values)),key=values.__getitem__)

10* *enumerate kullanımı gerektirmez.

Eğer numpy diziler ile ilgili ise, çok daha hızlı kullanın

index_min=values.argmin()

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dirty Loops

    Dirty Loops

    21 Mayıs 2007
  • modica89

    modica89

    24 HAZİRAN 2007
  • RiverCityGraphix

    RiverCityGra

    6 Ocak 2012