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

  • fouseyTUBE

    fouseyTUBE

    21 Mart 2011
  • HowToBasic

    HowToBasic

    8 Aralık 2011
  • pissengehen

    pissengehen

    26 EYLÜL 2006