مطابقة مستقرة للتفضيلات
طابق مجموعتين من 20 عضوا كحد أقصى باستخدام تفضيلات كاملة وصارمة.
from collections import deque
def stable_pairs(proposers, receivers):
if type(proposers) not in (list, tuple) or type(receivers) not in (list, tuple):
raise ValueError("preference tables must be lists or tuples")
n = len(proposers)
if n > 20 or len(receivers) != n: raise ValueError("equal sizes up to 20")
for rows in (proposers, receivers):
for row in rows:
if type(row) not in (list, tuple) or len(row) != n or any(type(v) is not int for v in row) or set(row) != set(range(n)):
raise ValueError("complete strict preferences")
ranks = [{v:i for i,v in enumerate(row)} for row in receivers]
free, next_choice = deque(range(n)), [0]*n
owner, partner = [None]*n, [None]*n
while free:
p = free.popleft()
r = proposers[p][next_choice[p]]
next_choice[p] += 1
old = owner[r]
if old is None or ranks[r][p] < ranks[r][old]:
owner[r], partner[p] = p, r
if old is not None: partner[old] = None; free.append(old)
else: free.append(p)
return partner- النماذج
- اضبط نقطة اتصال متوافقة مع OpenAI أو Anthropic باستخدام العنوان الأساسي ومفتاح API عند الحاجة. اختبر الاتصال. يجب أن يعمل خادم النموذج المحلي؛ وقد ترسل الأدوات البعيدة البيانات بشكل منفصل.
- المشروع
- اختبر المجموعات الفارغة والاختيارات المتنافسة وارفض التكرار والنقص وتحقق من عدم بقاء زوج مانع.
- راجع قبل التطبيق
- قارن السلوك الفعلي بالنتيجة المتوقعة. إذا فشل فحص، تحقّق من السبب قبل إجراء تغييرات إضافية.
from collections import deque
def stable_pairs(proposers, receivers):
if type(proposers) not in (list, tuple) or type(receivers) not in (list, tuple):
raise ValueError("preference tables must be lists or tuples")
n = len(proposers)
if n > 20 or len(receivers) != n: raise ValueError("equal sizes up to 20")
for rows in (proposers, receivers):
for row in rows:
if type(row) not in (list, tuple) or len(row) != n or any(type(v) is not int for v in row) or set(row) != set(range(n)):
raise ValueError("complete strict preferences")
ranks = [{v:i for i,v in enumerate(row)} for row in receivers]
free, next_choice = deque(range(n)), [0]*n
owner, partner = [None]*n, [None]*n
while free:
p = free.popleft()
r = proposers[p][next_choice[p]]
next_choice[p] += 1
old = owner[r]
if old is None or ranks[r][p] < ranks[r][old]:
owner[r], partner[p] = p, r
if old is not None: partner[old] = None; free.append(old)
else: free.append(p)
return partnerوضح متطلبات الإسناد قبل مراجعة الكود
تحتاج ميزة الإسناد إلى أكثر من قائمة أزواج: تحتاج إلى بيان واضح للمدخلات الصالحة وما يجعل النتيجة مقبولة. يوفر PairCrest مساحة عمل للبرمجة بالذكاء الاصطناعي على Windows لمناقشة تلك المتطلبات مع ملفات المشروع ذات الصلة. ابدأ بالتفضيلات التي يتلقاها تطبيقك والقيود التي يجب أن يراعيها، ثم اطلب فحص التنفيذ الحالي.
يقدم مثال المطابقة المستقرة للتفضيلات مهمة تطوير محتملة. يمكنك مراجعة التحقق من الترتيبات الكاملة، وتمثيل العناصر التي لم تطابق أثناء المعالجة، ووصول الأزواج النهائية إلى المستدعي. إذا تضمنت متطلباتك تعادلات أو تفضيلات ناقصة أو مجموعات غير متساوية، فحدد هذا الاختلاف قبل طلب التكييف. ينبغي إبقاء افتراضات المثال الأضيق واضحة طوال النقاش، بدلا من تحولها إلى سياسة خفية للتطبيق.
يمكن اختيار نموذج ذكاء اصطناعي بلا رقابة عبر نقطة نهاية مدعومة متوافقة مع OpenAI أو تابعة لـ Anthropic، مع بيانات الاعتماد عند الحاجة. يحدد النموذج والخادم السياق والأدوات والقيود. راجع فحوص المدخلات ومعالجة النتائج المقترحة، ثم اختبر جداول تفضيلات صغيرة بنتائج يمكنك فحصها. يغطي خادم نماذج محلي منفصل الاستدلال فقط؛ وقد تظل الأدوات الأخرى تتصل بخدمات خارجية.
توضيح ميزة قائمة على التفضيلات
كيف تبدو متطلبات إسناد مفيدة؟
صف المجموعات وأشكال التفضيلات المسموحة والخاصية التي ينبغي أن يحققها الإسناد النهائي. قدم مثالا صغيرا يمكن للناس فحصه. تجنب لفظا عاما مثل الأفضل دون توضيح كيفية تقييم التطبيق للنتيجة.
هل يمكن إضافة تعادلات دون تغيير العقد المحيط؟
لا تفترض ذلك. يتوقع المثال تفضيلات كاملة وصارمة. قد يغير التعادل تمثيل المدخلات ومعنى النتيجة المقبولة معا. اطلب حسم هذه القرارات صراحة قبل مراجعة أي خوارزمية أو تعديل للمستدعي مقترح.
كيف أفحص المخرجات دون مجموعة اختبار كبيرة؟
ابدأ بجداول تفضيلات صغيرة وافحص الأزواج الناتجة وفق الخاصية المحددة. أدرج ترتيبات غير صالحة لاختبار الرفض. تدعم هذه الحالات المركزة المراجعة، بينما ينبغي أن تغطي اختبارات التطبيق متطلبات المدخلات والتكامل الأوسع.
هل يقرر PairCrest ما هو عادل للمستخدمين؟
لا تحدد مساحة العمل البرمجية سياسة التخصيص الخاصة بك. أنت تقدم المتطلبات وتقيم عواقبها. اطلب من المساعد شرح افتراضات التنفيذ، ثم راجع مطابقتها للقواعد التي يفترض أن يستخدمها تطبيقك.
PairCrest · آخر تحديث 2026-10-25