php {a,b,c}+{a,c}这是什么运算啊?怎么个算法?

大叔说码 2016-11-22 11:21:40
在网上看到这样一道题{a,b,c}+{a,b}={a,b,c},不知道结果是怎样得出来的?
在谷歌浏览器的console下试着运算{1,2,3}+{1,2}就报错,但运算{1,2,3}+1得到的结果是1,{1,2,3}+2结果是2,
但是{1,2,3}+1又报错
不知道它是怎样的一个算法在里面,
请大伙解释一下!!!谢谢!
...全文
171 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
大叔说码 2016-11-23
  • 打赏
  • 举报
回复
引用 6 楼 fdipzone 的回复:
答案是A {1,2,3}+{1,2} 这些不是代码,不能直接运算的。 js代码可以这样写

<script type="text/javascript">
function array_remove_repeat(a) { // 去重
    var r = [];
    for(var i = 0; i < a.length; i ++) {
        var flag = true;
        var temp = a[i];
        for(var j = 0; j < r.length; j ++) {
            if(temp === r[j]) {
                flag = false;
                break;
            }
        }
        if(flag) {
            r.push(temp);
        }
    }
    return r;
}

function array_intersection(a, b) { // 交集
    var result = [];
    for(var i = 0; i < b.length; i ++) {
        var temp = b[i];
        for(var j = 0; j < a.length; j ++) {
            if(temp === a[j]) {
                result.push(temp);
                break;
            }
        }
    }
    return array_remove_repeat(result);
}

function array_union(a, b) { // 并集
    return array_remove_repeat(a.concat(b));
}

function array_difference(a, b) { // 差集 a - b
    //clone = a
    var clone = a.slice(0);
    for(var i = 0; i < b.length; i ++) {
        var temp = b[i];
        for(var j = 0; j < clone.length; j ++) {
            if(temp === clone[j]) {
                //remove clone[j]
                clone.splice(j,1);
            }
        }
    }
    return array_remove_repeat(clone);
}

var a = ['a','b','c'];
var b = ['a','b'];

c = array_intersection(a, b);
d = array_union(a, b);
e = array_difference(a, b);
f = array_difference(b, a);

console.log("test array a:", a, "  b:", b);
console.log("a & b :", c);
console.log("a + b :", d);
console.log("a - b:", e);
console.log("b - a:", f);
</script>
哦哦,原来这样,谢谢您的讲解!感谢!
xuzuning 2016-11-22
  • 打赏
  • 举报
回复
应该是集合运算 你最好给出题目的出处
傲雪星枫 2016-11-22
  • 打赏
  • 举报
回复
答案是A

{1,2,3}+{1,2} 这些不是代码,不能直接运算的。

js代码可以这样写

<script type="text/javascript">
function array_remove_repeat(a) { // 去重
var r = [];
for(var i = 0; i < a.length; i ++) {
var flag = true;
var temp = a[i];
for(var j = 0; j < r.length; j ++) {
if(temp === r[j]) {
flag = false;
break;
}
}
if(flag) {
r.push(temp);
}
}
return r;
}

function array_intersection(a, b) { // 交集
var result = [];
for(var i = 0; i < b.length; i ++) {
var temp = b[i];
for(var j = 0; j < a.length; j ++) {
if(temp === a[j]) {
result.push(temp);
break;
}
}
}
return array_remove_repeat(result);
}

function array_union(a, b) { // 并集
return array_remove_repeat(a.concat(b));
}

function array_difference(a, b) { // 差集 a - b
//clone = a
var clone = a.slice(0);
for(var i = 0; i < b.length; i ++) {
var temp = b[i];
for(var j = 0; j < clone.length; j ++) {
if(temp === clone[j]) {
//remove clone[j]
clone.splice(j,1);
}
}
}
return array_remove_repeat(clone);
}

var a = ['a','b','c'];
var b = ['a','b'];

c = array_intersection(a, b);
d = array_union(a, b);
e = array_difference(a, b);
f = array_difference(b, a);

console.log("test array a:", a, " b:", b);
console.log("a & b :", c);
console.log("a + b :", d);
console.log("a - b:", e);
console.log("b - a:", f);
</script>


大叔说码 2016-11-22
  • 打赏
  • 举报
回复
引用 2 楼 fdipzone 的回复:
集合运算吧,提供的东西不多。
您看一下上楼,我贴出了
大叔说码 2016-11-22
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
应该是集合运算
你最好给出题目的出处


引用 1 楼 xuzuning 的回复:
应该是集合运算
你最好给出题目的出处

这是原题目:

这是我的测试:
大叔说码 2016-11-22
  • 打赏
  • 举报
回复
这是原题目:

这是我随便测试的:
傲雪星枫 2016-11-22
  • 打赏
  • 举报
回复
集合运算吧,提供的东西不多。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧