Şimdi Ara

Backtracking Search in C#

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
3
Cevap
0
Favori
688
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Herkese selam,


    C# 'da backtraking search hakkında bir yazılım sorunum var.


    Bununla ilgili bir python kodum var. Pek çok kez python'dan C #'a dönüştürmeyi denedim, ancak yapamadım. Lütfen bana yardım eder misin?


    Bazı arkadaşlar bu işte profesyonel, bana yardımcı olurlarsa sevinirim.


    Python kodu: https://cdn.cs50.net/ai/2020/spring/lectures/3/src3/scheduling/schedule0.py


    Bu kodu c#'a dönüştürmeye çalışıyorum kısaca.


    Bu python kodunun çıktısı:


    Backtracking Search in C#



    Benim denediğim c# kodu:


    Kod

    Yığını:
    namespace Namespace { using System; using System.Collections.Generic; public class Module { public List<string> VARIABLES = new List<string> {"A","B","C","D","E","F","G"}; public object CONSTRAINTS = new List<object> { ("A", "B"), ("A", "C"), ("B", "C"), ("B", "D"), ("B", "E"), ("C", "E"), ("C", "F"), ("D", "E"), ("E", "F"), ("E", "G"), ("F", "G") }; // Runs backtracking search to find an assignment. public object backtrack(List<string> assignment) { // Check if assignment is complete if (assignment.Count == VARIABLES.Count) { return assignment; } // Try a new variable var variable = Convert.ToInt32(select_unassigned_variable(assignment)); foreach (var value in new List<object> { "Monday", "Tuesday", "Wednesday" }) { var new_assignment = assignment; new_assignment[variable] = value.ToString(); if (Convert.ToBoolean(consistent(new_assignment))) { var result = backtrack(new_assignment); if (result != null) { return result; } } } return null; } // Chooses a variable not yet assigned, in order. public object select_unassigned_variable(List<string> assignment) { foreach (var variable in VARIABLES) { if (!assignment.Contains(variable)) { return variable; } } return null; } // Checks to see if an assignment is consistent. public object consistent(List<string> assignment) { foreach (var cons in CONSTRAINTS) { var x = cons.Item1; var y = cons.Item2; // Only consider arcs where both are assigned if (!assignment.Contains(x) || !assignment.Contains(y)) { continue; } // If both have same value, then not consistent if (assignment[x] == assignment[y]) { return false; } } // If nothing inconsistent, then assignment is consistent return true; } //object solution = backtrack(new List<string>()); } }



    < Bu mesaj bu kişi tarafından değiştirildi Mete355 -- 12 Aralık 2020; 12:27:7 >







  • Kod

    Yığını:
    using System; using System.Collections.Generic;


    bu kodların namespace dışında olması gerekiyor.

    Kod

    Yığını:
    using ... namespace { }


    gibi

  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.