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

  • amc

    amc

    21 EYLÜL 2005
  • Damian Winter

    Damian Winte

    27 ŞUBAT 2007
  • Kyletiv7

    Kyletiv7

    28 Mayıs 2007