Matris zinciri maliyeti
En fazla 12 matrislik zincirin en düşük skaler çarpım maliyetini bulun.
def chain_cost(dimensions):
if type(dimensions) not in (list, tuple) or not 2 <= len(dimensions) <= 13:
raise ValueError("one through twelve matrices")
if any(type(d) is not int or not 1 <= d <= 1000 for d in dimensions):
raise ValueError("dimensions 1 through 1000")
n = len(dimensions)-1
cost = [[0]*n for _ in range(n)]
for width in range(2, n+1):
for left in range(n-width+1):
right = left+width-1
cost[left][right] = min(
cost[left][k]+cost[k+1][right]+
dimensions[left]*dimensions[k+1]*dimensions[right+1]
for k in range(left,right))
return cost[0][n-1]| Proje | Tek matrisi ve farklı parantezlemeleri deneyerek 1–1000 dışı boyutları matris öğelerini çarpmadan reddedin. |
|---|---|
| Uygulamadan önce inceleyin | Gerçek davranışı beklenen sonuçla karşılaştırın. Bir kontrol başarısız olursa yeni değişikliklerden önce nedenini araştırın. |
| Modeller | Temel URL ve gerekiyorsa API anahtarıyla OpenAI uyumlu veya Anthropic endpoint yapılandırın. Bağlantıyı test edin. Yerel model sunucusu çalışıyor olmalıdır; uzak araçlar ayrıca veri aktarabilir. |
def chain_cost(dimensions):
if type(dimensions) not in (list, tuple) or not 2 <= len(dimensions) <= 13:
raise ValueError("one through twelve matrices")
if any(type(d) is not int or not 1 <= d <= 1000 for d in dimensions):
raise ValueError("dimensions 1 through 1000")
n = len(dimensions)-1
cost = [[0]*n for _ in range(n)]
for width in range(2, n+1):
for left in range(n-width+1):
right = left+width-1
cost[left][right] = min(
cost[left][k]+cost[k+1][right]+
dimensions[left]*dimensions[k+1]*dimensions[right+1]
for k in range(left,right))
return cost[0][n-1]Hesaplanan planı temsil ettiği işten ayırın
ChainArbor, hesaplamalı planlama çalışmaları için bağlı bir modelle varsayımları tartışabileceğiniz bir Windows kodlama çalışma alanı sunar. Önce planlama işlevinin gerçekte ne döndürdüğünü ve bunu kimin kullandığını belirleyin. Maliyet tahmini, yürütme sırası ve gerçekleştirilmiş işlem farklı çıktılardır; yararlı bir değişiklik isteği bu ayrımı açıkça belirtir.
Sunulan örnek görev, matris zinciri maliyet planlamasıdır. Çevresindeki uygulamayı genişletmeden önce asistandan boyut doğrulamasını ve bildirilen aritmetik işlem maliyetini incelemesini isteyebilirsiniz. Çağıran kodu ve beklentilerini dahil edin; böylece önerilen değişiklik, minimum maliyeti yanlışlıkla çarpma sırası veya tamamlanmış matris sonucu gibi sunmaz.
Bu arayüz kararlarını görünür kılmak için konuşmayı kullanın, ardından ortaya çıkan kaynak değişikliklerini inceleyin. Tek matris durumu dahil, maliyetleri bağımsız olarak belirlenmiş küçük boyut dizilerini kontrol edin ve projenin kendi testlerini çalıştırın. Sonradan yürütme planı isterseniz gösterimini ve doğrulamasını, maliyet hesabından kendiliğinden çıktığını varsaymak yerine ek gereksinimler olarak ele alın.
Filtresiz yapay zeka modeli seçimi için istediğiniz modeli sunan desteklenen bir OpenAI uyumlu veya Anthropic hizmetine bağlanın. Kimlik bilgileri, araç desteği ve bağlam sınırları bu kuruluma bağlıdır. Çalışma alanı sağlayıcı kısıtlamalarını geçersiz kılmaz; önerilen planlama değişikliklerini inceleyebileceğiniz kaynak kodla ve kabul ölçütleriyle bağlantılı tutmaya yardımcı olur.
Planlama kodunun kapsamını netleştiren sorular
Yürütme sırasına ihtiyacım varsa ne istemeliyim?
Sıranın açık bir gösterimini isteyin ve çağıran kodun bunu nasıl kullanacağını açıklayın. Minimum aritmetik işlem maliyetini bildiren bir işlev bu gösterimi üretmeyebilir. Hem plan hem de bildirilen maliyet için doğrulama örnekleri dahil edin.
Yalnızca bir matris içeren zincir neden test edilmeli?
Çarpma gerekmediğinde temel davranışı tanımlar. Bu durumu küçük bir çok matrisli örnekle birlikte dahil edin; böylece asistanın önerisi hem sınır duruma hem de uzun zincirlerde kullanılan planlama mantığına göre kontrol edilir.
Çalışma alanı gerçek sayısal matris sonuçlarını doğrulayabilir mi?
Bu sonuçlar için projenizin sayısal araçlarını ve testlerini kullanın. Kodlama çalışma alanı, önerilen değişiklikleri tartışmayı ve incelemeyi destekler; doğru bir maliyet test örneği, ayrı bir çarpma uygulamasının doğru değerler ürettiğini kanıtlamaz.
Maliyet kodunu yeniden düzenlerken arayüzünün genişlemesini nasıl önlerim?
İstekte mevcut dönüş türünü ve çağıran koddan beklenen davranışı belirtin. Farkı yeni çıktılar veya değişmiş birimler açısından inceleyin. Daha kapsamlı bir plan isteniyorsa bunu yeniden düzenlemenin tesadüfi sonucu olarak değil, bilinçli bir sonraki adım olarak tanımlayın.
ChainArbor · Güncellendi 2026-10-25