小编RMu*_*esi的帖子

农民需要通过自引用动物表循环的算法

问题是:农场里有很多动物.每个动物都可以拥有任何数量的动物朋友,除了反社会动物 - 他们没有属于他们的朋友,但他们作为朋友属于其他正常动物.除了反社会动物之外,每只动物都是最不开心的动物朋友.反社会动物幸福的水平可以是任何东西.

一天早上,所有的动物都醒来,发现一些反社会动物的情绪发生了变化.农夫如何找出每只动物的幸福?

这是牧场的手(他们没有去农场学校):

一对多自引用表

DataTable animals = Select_All_Animals();
foreach (DataRow animal in animals.Rows)
{
    int worstMood = 10; //Super Happy!
    DataTable friendRecords = Select_Comp_Animal_AnimalFriend((int)animal["AnimalID"]);
    foreach (DataRow friend in friendRecords.Rows)
    {
        DataTable animalFriends = Select_AnimalFriend((int)friend["AnimalID_Friend"]);
        foreach (DataRow animalFriend in animalFriends.Rows)
        {
            int animalMood = Get_Animal_Mood((int)animalFriend["Mood"]);
            if (animalMood < worstMood)
            {
                worstMood = animalMood;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为动物表不会按顺序跟随已经形成的动物朋友等级.动物可以随时互相交朋友!所以Animal(1)可能有动物(4000)作为朋友.动物(1)不会表现出准确的情绪,因为它会在动物(4000)的情绪自我更新之前检查动物(4000)的情绪.每天都有新动物被甩掉.我认为解决方案可能是一种常见的算法设计,但我无法找到它.我不相信我有正确的术语来准确搜索它.

非常感谢,如果这已经得到了答复,那就很抱歉!

添加:

这是一个可能的关系的贫民窟油漆图表:

像一个非循环图

反社会动物处于底层,没有属于他们的朋友.正常的动物在上面的其他地方.正常的动物友谊没有确切的结构,除了(正如塞巴斯蒂安指出的那样)不能有一个闭环(如果设计正确).

每周会有成千上万的动物被添加,处理速度是一个关键因素.

c# algorithm database-design design-patterns

9
推荐指数
1
解决办法
653
查看次数

如何在VS Code中重置智能感知?

如果在调试VsCode时更改代码,则智能提示有时会出现错误的编译错误。重置或纠正最快的方法?

visual-studio-code

8
推荐指数
6
解决办法
1万
查看次数

引导板在角材上的等效作用是什么?

如果你去 Angular Material官方网站,则会看到示例包裹在看起来像Bootstrap面板中(请参阅基本卡)。但是这些面板没有任何材料成分。我能找到的最接近的垫子卡,看起来并不一样。

是否有本机的html元素?我想念什么?

html5 angular-material2

5
推荐指数
0
解决办法
134
查看次数

如何避免与 Visual Studio Git 进行不必要的合并

目前我们的工作流程要求当我们想要提交到本地分支时,我们必须首先从远程分支获取和拉取,以便我们的本地分支更新。然后我们可以在本地进行提交,然后推送到远程。如果我们先提交到本地分支,然后从远程分支拉取更新,Visual Studio 将自动为我们提交合并,无论是否有冲突的更改。我们希望避免不必要的合并。

所以我的问题是,是否有选项或操作可以在 VS 中自动执行此操作?您单击的一个操作将首先从远程拉取,更新本地,然后提交,然后推回远程?现在我们正在手动执行所有三个操作,以避免 VS 生成不必要的合并提交。

VS 有一个选项“提交并同步所有”,其目的似乎是为了我们正在尝试做的事情,但事实并非如此。它只是先提交,然后进行拉和推,这仍然会产生不必要的合并。

git visual-studio team-explorer git-workflow azure-devops

1
推荐指数
1
解决办法
354
查看次数