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

  • kev5124

    kev5124

    9 Kasım 2008
  • thepoke64738

    thepoke64738

    17 HAZİRAN 2011
  • wowchick16

    wowchick16

    17 Mart 2007