SSpanSorbus
مساحة عمل برمجية بالذكاء الاصطناعي

جسور الرسوم غير الموجهة

أوجد الجسور في رسم بسيط غير موجه حتى 32 رأسًا.

● ● ●SpanSorbus●
سير العمل · جسور الرسوم غير الموجهة ×
def bridge_edges(n, edges):
    if type(n) is not int or not 0 <= n <= 32:
        raise ValueError("vertex count")
    if type(edges) is not list or len(edges) > 496:
        raise ValueError("edge count")
    graph = [set() for _ in range(n)]
    for edge in edges:
        if type(edge) is not tuple or len(edge) != 2 or any(
            type(x) is not int or not 0 <= x < n for x in edge):
            raise ValueError("edge endpoints")
        a, b = edge
        if a == b or b in graph[a]:
            raise ValueError("simple undirected edges")
        graph[a].add(b); graph[b].add(a)
    timer, found = 0, []
    entered, low = [-1] * n, [0] * n
    def visit(v, parent):
        nonlocal timer
        entered[v] = low[v] = timer; timer += 1
        for u in sorted(graph[v]):
            if u == parent:
                continue
            if entered[u] < 0:
                visit(u, v); low[v] = min(low[v], low[u])
                if low[u] > entered[v]:
                    found.append(tuple(sorted((v, u))))
            else:
                low[v] = min(low[v], entered[u])
    for v in range(n):
        if entered[v] < 0:
            visit(v, -1)
    return sorted(found)
✳أوجد الجسور في رسم بسيط غير موجه حتى 32 رأسًا.
✓ التغييراتراجع قبل التطبيق ↗
رسم توضيحي لمساحة العمل
01

راجع قبل التطبيق

قارن السلوك الفعلي بالنتيجة المتوقعة. إذا فشل فحص، تحقّق من السبب قبل إجراء تغييرات إضافية.

02

النماذج

اضبط نقطة اتصال متوافقة مع OpenAI أو Anthropic باستخدام العنوان الأساسي ومفتاح API عند الحاجة. اختبر الاتصال. يجب أن يعمل خادم النموذج المحلي؛ وقد ترسل الأدوات البعيدة البيانات بشكل منفصل.

03

المشروع

اختبر المكونات المنفصلة والدورات وارفض الحواف المكررة والحلقات الذاتية والأطراف غير الصالحة دون تغيير الإدخال.

سير العمل

جسور الرسوم غير الموجهة

سير العمل ↗
سير العمل
def bridge_edges(n, edges):
    if type(n) is not int or not 0 <= n <= 32:
        raise ValueError("vertex count")
    if type(edges) is not list or len(edges) > 496:
        raise ValueError("edge count")
    graph = [set() for _ in range(n)]
    for edge in edges:
        if type(edge) is not tuple or len(edge) != 2 or any(
            type(x) is not int or not 0 <= x < n for x in edge):
            raise ValueError("edge endpoints")
        a, b = edge
        if a == b or b in graph[a]:
            raise ValueError("simple undirected edges")
        graph[a].add(b); graph[b].add(a)
    timer, found = 0, []
    entered, low = [-1] * n, [0] * n
    def visit(v, parent):
        nonlocal timer
        entered[v] = low[v] = timer; timer += 1
        for u in sorted(graph[v]):
            if u == parent:
                continue
            if entered[u] < 0:
                visit(u, v); low[v] = min(low[v], low[u])
                if low[u] > entered[v]:
                    found.append(tuple(sorted((v, u))))
            else:
                low[v] = min(low[v], entered[u])
    for v in range(n):
        if entered[v] < 0:
            visit(v, -1)
    return sorted(found)
مساحة عمل برمجية بالذكاء الاصطناعي

اربط نتائج الرسم البياني بقرار يتخذه التطبيق

SpanSorbus مساحة عمل برمجية على Windows لفحص منطق الاتصال في سياق ملفات مصدر حقيقية. ابدأ بوصف القرار الذي يتخذه تطبيقك من نتيجة الرسم البياني. اطلب من النموذج المتصل فحص تمثيل المدخل ومستهلكه قبل طلب تغيير الاجتياز أو المخرجات.

قد تستخدم مهمة مفيدة bridge_edges.py لفحص حافة يؤدي حذفها إلى فصل جزء متصل من حالة اختبار. أدرج رسماً بدورة للمقارنة وحدد قائمة الحواف المتوقعة. راجع افتراضات الرسم البسيط غير الموجه مع التنفيذ كي لا يقبل التغيير المقترح نوع مدخل مختلفاً بصمت.

يستمر العمل البرمجي بعد عودة الإجراء. افحص كيفية تسمية المستدعي للعقد وعرض الحواف ومعالجة البيانات المرفوضة، ثم شغّل فحوص المشروع بحالات غير متصلة وفارغة. اربط المراجعة بهذه النتائج الملحوظة. شرح صحيح للرسم البياني لا يثبت أن التطبيق يحول بياناته الفعلية إلى التمثيل المتوقع.

يتصل SpanSorbus عبر نقاط نهاية مدعومة متوافقة مع OpenAI أو خاصة بـ Anthropic مع بيانات اعتماد عند الحاجة. اختر نموذج ذكاء اصطناعي بلا رقابة حيث توفره نقطة النهاية، مع فحص قيود المزود والأدوات المتاحة. تعتمد حدود السياق على النموذج والخادم، لذا قدم حالة محدودة والمستهلكين المعنيين لمحادثة برمجية مركزة.

أسئلة قبل تغيير شيفرة الاتصال

هل تحتاج كل حافة خارج دورة المعاملة نفسها؟

تحقق من تعريف الرسم الدقيق والقرار الذي يتخذه تطبيقك. استخدم حالة بنتيجة متوقعة مكتوبة مستقلاً. راجع افتراضات الاتجاه والحواف المتوازية والحلقات الذاتية قبل تحويل شرح غير رسمي إلى متطلب برمجي.

لماذا نختبر مدخلاً غير متصل؟

قد يحتوي التطبيق مكونات منفصلة عدة لكل منها حوافها المعنية. قد يفوّت اجتياز يبدأ بعقدة واحدة المكونات الأخرى. أدرج حالة بأكثر من مكوّن وقارن المخرجات كاملة، لا أول حافة متوقعة فقط.

هل يمكن تقديم حواف مكررة من بيانات مستوردة؟

افحص عقد المدخلات المقبولة أولاً. يتوقع المثال رسماً بسيطاً ويرفض التكرارات. إذا احتوت البيانات المستوردة حواف مكررة، فقرر ما إذا كان المستورد يوحدها أو يبلغ عن خطأ قبل طلب تغييرات لإجراء الرسم.

ماذا يحفظ المستهلك عند عرض حافة؟

حدد الربط بين معرفات العقد الداخلية وتسميات المستخدم، وأي ترتيب لازم لثبات المخرجات. راجع هذه الروابط مع التعديل المقترح. قد يصبح زوج حافة داخلي صحيح نتيجة مضللة إذا ربطه المستدعي بتسميات خاطئة.

تنزيل لنظام Windows ↗

SpanSorbus · آخر تحديث 2026-10-25