Sınırlı sonek aritmetiği
Sınırlı tamsayılar ve +, -, *, // işleçleriyle bir ile 100 arasında sonek belirtecini hesaplayın.
def postfix_value(tokens):
tokens = tuple(tokens)
if not 1 <= len(tokens) <= 100:
raise ValueError("tokens.limit")
stack = []
for token in tokens:
if type(token) is int and abs(token) <= 1000000000:
stack.append(token)
continue
if type(token) is not str or token not in ("+", "-", "*", "//") or len(stack) < 2:
raise ValueError("token.invalid")
right, left = stack.pop(), stack.pop()
if token == "//" and right == 0:
raise ValueError("division.zero")
value = (left + right if token == "+" else left - right if token == "-" else left * right if token == "*" else left // right)
if abs(value) > 10**18:
raise ValueError("result.range")
stack.append(value)
if len(stack) != 1:
raise ValueError("stack.remainder")
return stack[0]- Proje
- Negatif aşağı yuvarlanan bölmeyi sınayın; sıfıra bölmeyi, eksik yığını veya mutlak değeri 10**18 üzerindeki ara sonucu 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 postfix_value(tokens):
tokens = tuple(tokens)
if not 1 <= len(tokens) <= 100:
raise ValueError("tokens.limit")
stack = []
for token in tokens:
if type(token) is int and abs(token) <= 1000000000:
stack.append(token)
continue
if type(token) is not str or token not in ("+", "-", "*", "//") or len(stack) < 2:
raise ValueError("token.invalid")
right, left = stack.pop(), stack.pop()
if token == "//" and right == 0:
raise ValueError("division.zero")
value = (left + right if token == "+" else left - right if token == "-" else left * right if token == "*" else left // right)
if abs(value) > 10**18:
raise ValueError("result.range")
stack.append(value)
if len(stack) != 1:
raise ValueError("stack.remainder")
return stack[0]Ayrıştırıcısını değiştirmeden önce ifadenin neler yapabileceğini tanımlayın
Dil küçük olsa bile ifade işleme net sınırlara ihtiyaç duyar. StackSundial, bu sınırları kaynak dosyaları yanında tartışmak için Windows üzerinde bir yapay zeka kodlama çalışma alanıdır. Projenizi açın ve bağlı modelden uygulama değişikliği önermeden önce kabul edilen tokenları, değerlendirme kurallarını ve çağıran kodun hata işlemesini incelemesini isteyin.
Olası bir görev, dahili hesaplama ekranının kullandığı sonek ifade değerlendiricisini incelemektir. İzin verilen işleçleri, sayısal sınırları ve bozuk ifadelere yanıtı belirtin. Asistandan bu gereksinimlerin nerede uygulandığını belirlemesini ve eksik yerlerde odaklı değişiklikler önermesini isteyin. Böylece konuşma yalnızca başka bir değerlendirici üretmek yerine yazılımınızın bakımına odaklanır.
Ret yollarını başarılı aritmetik kadar dikkatle inceleyin. Eksik işlenenler, fazla sonuçlar, sıfıra bölme ve izin verilen sınırları aşan değerler için proje kontrollerini çalıştırın. Değişme özelliği olmayan işlemlerde işlenen sırasını inceleyin ve çağıran kodun amaçlanan hatayı aldığını doğrulayın. Çevresindeki sözleşmeyi zayıflatıyorsa daha kısa değerlendirme döngüsünü kabul etmeyin.
StackSundial, OpenAI uyumlu veya Anthropic uç noktalarına bağlantıları destekler. Mevcut olduğunda kısıtlamaların, bağlam sınırlarının ve araçların seçilen hizmete bağlı olduğunu bilerek abliterated yapay zeka modeli seçin. Önerdiği kod, inceleme ve kendi doğrulamanız için başlangıç noktasıdır; yorumlayıcının hazır olduğunun kanıtı değildir.
Değerlendirici yamasını kabul etmeden önce
- Görev açıklamasına hangi kuralları eklemeliyim?
İzin verilen tokenları, işlenen türlerini, sayısal sınırları ve hata davranışını belirtin. Hataları kullanıcılara sunan çağıran kodu dahil edin. Bu kurallar olmadan öneri normal örnekleri doğru hesaplayıp uygulamanın reddetmesi gereken ifadeleri kabul edebilir.
- Çıkarma ve bölme neden açıkça test edilmeli?
Olağan durumlarda toplamadan farklı olarak sonuçları işlenen sırasına bağlıdır. İşlenenler ters çevrildiğinde belirgin farklı sonuçlar veren örnekler kullanın. Sıfır bölen yanıtının yanında projenizin gerektirdiği bölme kuralını da kontrol edin.
- Bozuk ifadeler sıfır döndürmeli mi?
Yalnızca bu açık bir uygulama gereksinimiyse. Makul sayısal varsayılan kötü girdiyi gizleyebilir. Asistandan açık bir ret yolunu korumasını isteyin ve çağıran kodun geçerli sıfır sonucunu hatadan nasıl ayırdığını inceleyin.
- Yalnızca token sınırı değerlendirmeyi sınırlayabilir mi?
Ara değerler ve kabul edilen girdi yapısı dahil projenin gerektirdiği tüm sınırları inceleyin. Token sayısı sözleşmenin yalnızca bir bölümünü yanıtlar. Değerlendirme döngüsündeki her değişiklikten sonra ilgili ret yollarını test edin.
StackSundial · Güncellendi 2026-10-25