小编neo*_*neo的帖子

SQL设计模式

SQL中的设计模式是否存在这样的问题?

sql database-design design-patterns

16
推荐指数
3
解决办法
1万
查看次数

课程分配算法

我需要为m个课程分配n个人,每个人指定他们的第一和第二个偏好,每个课程都有最多的人参加.每个人只能参加一门课程.该算法应该找到一个解决方案

  1. 根据他们的偏好分配一门课程的人数最大化
  2. 分配他们的第一选择的人数最大化(考虑到优先级较高的1).

我猜这不是一个不常见的问题,但搜索没有回复太有用,因此我决定推出自己的.这是我到目前为止所得到的:

  1. 对于首选项数量少于最多人数的课程,请将所有这些人员分配到课程中
  2. 对于其他课程:将随机人员纳入课程,选择该课程作为第一选择,直到课程结束
  3. 对于第二选择比自由空间少的课程,将所有这些人分配到课程中
  4. 对于其他课程:将随机人员纳入选择该课程作为第二选择的课程,直到课程结束
  5. 对于没有课程的每个人:在他们的第一个(然后是第二个)偏好中寻找一个人选择了另一个课程,其中斑点仍然是免费的(如果发现多于一个,则选择选择具有最多免费点的课程的人) ,将此人移至他们的第二选择并指派失踪人员

由于最后一步,我仍然认为该算法不会找到问题的最佳解决方案.任何想法如何使这个更好?还有其他算法可以解决这个问题吗?

algorithm variable-assignment

10
推荐指数
2
解决办法
2976
查看次数

库在php中编辑odt文件

我尝试在PHP中以编程方式编辑ODT文档.实际上我只想做一些文本替换并在表中添加新行.

我知道普通的ODF文档是包含XML文件的存档.但在重新发明轮子之前:是否有任何图书馆可以完成大部分任务?或者我应该在DOM解析器中解析XML文件并进行修改?

php editing opendocument odf

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

反复检查对象是否是方法的有效泛型参数

如何使用反射检查给定对象是否是方法的有效参数(参数和对象是泛型类型)?

为了获得一些背景知识,这就是我想要实现的目标:

在使用反射方法调用时,我认为调用具有特定类型参数的所有方法会很好.这适用于原始类型,因为您可以调用isAssignableFrom(Class<?> c)它们的类对象.然而,当你开始在混合中投入泛型时,它突然变得不那么容易,因为泛型不是反射原始设计的一部分,也不是因为类型擦除.

问题更大但它基本上归结为以下几点:

理想解决方案

理想情况下代码

import java.lang.reflect.*;
import java.util.*;


public class ReflectionAbuse {

    public static void callMeMaybe(List<Integer> number) {
        System.out.println("You called me!");
    }

    public static void callMeAgain(List<? extends Number> number) {
        System.out.println("You called me again!");
    }

    public static void callMeNot(List<Double> number) {
        System.out.println("What's wrong with you?");
    }

    public static <T> void reflectiveCall(List<T> number){
        for(Method method : ReflectionAbuse.class.getDeclaredMethods()) {
            if(method.getName().startsWith("call")) {
                if(canBeParameterOf(method, number)) {
                    try {
                        method.invoke(null, number);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            } …
Run Code Online (Sandbox Code Playgroud)

java generics reflection type-erasure

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

获得下一个未使用的id的最有效方法

(与查找列表中最低未使用的唯一ID以及在SQL表上获取未使用的唯一值相关)

假设我有一个包含id列和其他一些表的表(它们在这里没有任何区别):

+-----+-----+
| id  |other|
+-----+-----+
Run Code Online (Sandbox Code Playgroud)

id具有数值增加值.我的目标是获得最低的未使用ID并创建该行.因此,当我第一次运行它将返回0并且该行的行将被创建.几次执行后,它将如下所示:

+-----+-----+
| id  |other|
+-----+-----+
|  0  | ... |
|  1  | ... |
|  2  | ... |
|  3  | ... |
|  4  | ... |
+-----+-----+
Run Code Online (Sandbox Code Playgroud)

通常,这些行中的某些行可能会被删除.假设用的ID的行13移除.表格看起来不像这样:

+-----+-----+
| id  |other|
+-----+-----+
|  0  | ... |
|  2  | ... |
|  4  | ... |
+-----+-----+
Run Code Online (Sandbox Code Playgroud)

如果我现在再次运行查询它想要返回id 1并且应该创建此行:

| id  |other|
+-----+-----+
|  0 …
Run Code Online (Sandbox Code Playgroud)

sql scalability execution-time

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

此电子邮件正则表达式是否排除有效地址?

我试图创建一个捕获所有 RFC有效地址的正则表达式,但如果出现一些误报(尽管希望不是那么多),也可以.这是我到目前为止:

/^\b\S+@\S+\.[^\s@]{2,}\b$/
Run Code Online (Sandbox Code Playgroud)

是否存在任何与此表达式不匹配的RFC有效地址,或者您是否有任何改进建议?我不介意误报,但如果你给我看几个,我会很高兴的.

regex email email-address

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