由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Joke版 - 求助术版 - 加,减,乘,除
相关主题
老外的称呼真阴险 (转载)Ebay二电面,铁挂了,这回求安慰吧。。。
Amex黑卡 - Once you go black you will never go back问个题1:implement + - * / without arithmetic operation
Joke版禁止黄色图片问一道fb的面试题目
天寒地冻zenefits店面 -已挂了
买买提普天同庆,MIT进NCAA Playoff了 (转载)Python擂台:算24点
全球暖化现在美国东西部实现了, 哈哈eval (expr, envir=, enclose=) 求解答
一个数组给一个int n, 求数组内能相加得到n的所有组合求助一个R的错误提示
请教一道面试题,关于tree的发一个Startup的面经 - Affirm
相关话题的讨论汇总
话题: expr话题: op话题: ex话题: num话题: return
进入Joke版参与讨论
1 (共1页)
i*i
发帖数: 58
1
有无聊的吗?四年级小孩的题俺居然不会啊
用6,17,3,7,加,减,乘,除,怎么得出29?数字可以不用,但不能用两次。
l**********3
发帖数: 10970
2

这么简单 你这真是笑话了

【在 i*i 的大作中提到】
: 有无聊的吗?四年级小孩的题俺居然不会啊
: 用6,17,3,7,加,减,乘,除,怎么得出29?数字可以不用,但不能用两次。

i*i
发帖数: 58
3
答案啊兄弟
真不会

【在 l**********3 的大作中提到】
: 靠
: 这么简单 你这真是笑话了

l**********3
发帖数: 10970
4
这尼玛还要跑程序
I********d
发帖数: 459
5
既然这样那你要么给出正确结果,要么给出不存在结果的严格证明。快,写。

【在 l**********3 的大作中提到】
: 这尼玛还要跑程序
w*********s
发帖数: 8428
6
想不出来
坐等答案

【在 i*i 的大作中提到】
: 有无聊的吗?四年级小孩的题俺居然不会啊
: 用6,17,3,7,加,减,乘,除,怎么得出29?数字可以不用,但不能用两次。

i*i
发帖数: 58
7
娃空着这道题交作业去了,我也想看看老师怎么说

【在 w*********s 的大作中提到】
: 想不出来
: 坐等答案

k*******2
发帖数: 4163
8
这道题出错了,没有答案。

【在 i*i 的大作中提到】
: 有无聊的吗?四年级小孩的题俺居然不会啊
: 用6,17,3,7,加,减,乘,除,怎么得出29?数字可以不用,但不能用两次。

g***n
发帖数: 14250
9
老师才不管,不会给答案的,看见别的做了就行了

【在 i*i 的大作中提到】
: 娃空着这道题交作业去了,我也想看看老师怎么说
H********g
发帖数: 43926
10
我们小时候都是玩算24,为啥这个要算29
相关主题
全球暖化现在美国东西部实现了, 哈哈Ebay二电面,铁挂了,这回求安慰吧。。。
一个数组给一个int n, 求数组内能相加得到n的所有组合问个题1:implement + - * / without arithmetic operation
请教一道面试题,关于tree的问一道fb的面试题目
进入Joke版参与讨论
i*i
发帖数: 58
11
这道题是从24一直算到30多,其它的都做出来了

【在 H********g 的大作中提到】
: 我们小时候都是玩算24,为啥这个要算29
n****4
发帖数: 12553
12
四个数字,四种算符,最多有
4!x 4^3 种结果

【在 i*i 的大作中提到】
: 有无聊的吗?四年级小孩的题俺居然不会啊
: 用6,17,3,7,加,减,乘,除,怎么得出29?数字可以不用,但不能用两次。

H********g
发帖数: 43926
13
老师动动嘴,爹妈累断腿
估计老师自己都没有算过这题

【在 i*i 的大作中提到】
: 这道题是从24一直算到30多,其它的都做出来了
i*i
发帖数: 58
14
所以觉得就是考验直觉了
哪个算法牛人给实现下,看看计算机多久能扫出来:)

【在 n****4 的大作中提到】
: 四个数字,四种算符,最多有
: 4!x 4^3 种结果

i*i
发帖数: 58
15
我小时候有个习惯,就是做不出来的题就老觉得老师出错了,为这挨过好多骂。所以为
了不把这毛病传给娃,昨天玩命想。发作业后老师要是没给答案,我决定给老师发个邮
件问问。难得认真一次。

【在 H********g 的大作中提到】
: 老师动动嘴,爹妈累断腿
: 估计老师自己都没有算过这题

H********g
发帖数: 43926
16
老刘一般都是这样的童年吧

【在 i*i 的大作中提到】
: 我小时候有个习惯,就是做不出来的题就老觉得老师出错了,为这挨过好多骂。所以为
: 了不把这毛病传给娃,昨天玩命想。发作业后老师要是没给答案,我决定给老师发个邮
: 件问问。难得认真一次。

i*i
发帖数: 58
17
不堪回首

【在 H********g 的大作中提到】
: 老刘一般都是这样的童年吧
H********g
发帖数: 43926
18
哪里不堪啊,很姓胡

【在 i*i 的大作中提到】
: 不堪回首
n****4
发帖数: 12553
19
应该有六个算符,加减带括号和不带括号的有区别。这样会多算一些情况,but ok

【在 i*i 的大作中提到】
: 所以觉得就是考验直觉了
: 哪个算法牛人给实现下,看看计算机多久能扫出来:)

i*i
发帖数: 58
20
当老师把答案不屑的甩在我面前的时候,我倔强的心灵和世界会坍塌。那时候觉得很不
幸福。

【在 H********g 的大作中提到】
: 哪里不堪啊,很姓胡
相关主题
zenefits店面 -已挂了求助一个R的错误提示
Python擂台:算24点发一个Startup的面经 - Affirm
eval (expr, envir=, enclose=) 求解答这个值得申么?
进入Joke版参与讨论
i*i
发帖数: 58
21

可惜没伪币,不然可以设个实现奖啥的

【在 n****4 的大作中提到】
: 应该有六个算符,加减带括号和不带括号的有区别。这样会多算一些情况,but ok
F*********u
发帖数: 12190
22
不准确

【在 n****4 的大作中提到】
: 四个数字,四种算符,最多有
: 4!x 4^3 种结果

s*********n
发帖数: 15
23
3 6 - 7 = 29
I********d
发帖数: 459
24
我靠,都告诉你们了程序算了没有结果,你们就忽略了?

【在 i*i 的大作中提到】
: 所以觉得就是考验直觉了
: 哪个算法牛人给实现下,看看计算机多久能扫出来:)

H********g
发帖数: 43926
25
需要贴出程序全文,运行条件,运行时间,调试参数,log

【在 I********d 的大作中提到】
: 我靠,都告诉你们了程序算了没有结果,你们就忽略了?
I********d
发帖数: 459
26
这问题明显可以用二叉树啊,4个叶子每个节点都有两个分支的二叉树就两种,所以上限
小于2*4!*3!,不过本题目还包括1或2或3叶子的情形,都比较简单。

【在 n****4 的大作中提到】
: 应该有六个算符,加减带括号和不带括号的有区别。这样会多算一些情况,but ok
I********d
发帖数: 459
27
http://rosettacode.org/wiki/24_game/Solve#C
改一下就行了。这是输入4个的,可以改成输入3个的。
6 17 3 7: No solution
……
#include
#include
#include
#define n_cards 4
#define solve_goal 29
#define max_digit 9
typedef struct { int num, denom; } frac_t, *frac;
typedef enum { C_NUM = 0, C_ADD, C_SUB, C_MUL, C_DIV } op_type;
typedef struct expr_t *expr;
typedef struct expr_t {
op_type op;
expr left, right;
int value;
} expr_t;
void show_expr(expr e, op_type prec, int is_right)
{
const char * op;
switch(e->op) {
case C_NUM: printf("%d", e->value);
return;
case C_ADD: op = " + "; break;
case C_SUB: op = " - "; break;
case C_MUL: op = " x "; break;
case C_DIV: op = " / "; break;
}
if ((e->op == prec && is_right) || e->op < prec) printf("(");
show_expr(e->left, e->op, 0);
printf("%s", op);
show_expr(e->right, e->op, 1);
if ((e->op == prec && is_right) || e->op < prec) printf(")");
}
void eval_expr(expr e, frac f)
{
frac_t left, right;
if (e->op == C_NUM) {
f->num = e->value;
f->denom = 1;
return;
}
eval_expr(e->left, &left);
eval_expr(e->right, &right);
switch (e->op) {
case C_ADD:
f->num = left.num * right.denom + left.denom * right.num;
f->denom = left.denom * right.denom;
return;
case C_SUB:
f->num = left.num * right.denom - left.denom * right.num;
f->denom = left.denom * right.denom;
return;
case C_MUL:
f->num = left.num * right.num;
f->denom = left.denom * right.denom;
return;
case C_DIV:
f->num = left.num * right.denom;
f->denom = left.denom * right.num;
return;
default:
fprintf(stderr, "Unknown op: %d\n", e->op);
return;
}
}
int solve(expr ex_in[], int len)
{
int i, j;
expr_t node;
expr ex[n_cards];
frac_t final;
if (len == 1) {
eval_expr(ex_in[0], &final);
if (final.num == final.denom * solve_goal && final.denom) {
show_expr(ex_in[0], 0, 0);
return 1;
}
return 0;
}
for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; j++)
ex[j - 1] = ex_in[j];
ex[i] = &node;
for (j = i + 1; j < len; j++) {
node.left = ex_in[i];
node.right = ex_in[j];
for (node.op = C_ADD; node.op <= C_DIV; node.op++)
if (solve(ex, len - 1))
return 1;
node.left = ex_in[j];
node.right = ex_in[i];
node.op = C_SUB;
if (solve(ex, len - 1)) return 1;
node.op = C_DIV;
if (solve(ex, len - 1)) return 1;
ex[j] = ex_in[j];
}
ex[i] = ex_in[i];
}
return 0;
}
int solve24(int n[])
{
int i;
expr_t ex[n_cards];
expr e[n_cards];
for (i = 0; i < n_cards; i++) {
e[i] = ex + i;
ex[i].op = C_NUM;
ex[i].left = ex[i].right = 0;
ex[i].value = n[i];
}
return solve(e, n_cards);
}
int main()
{
int i, j, n[] = { 3, 3, 8, 8, 9 };
srand(time(0));
for (i = 0; i < n_cards; i++) {
scanf("%d",&n[i]);
}
for (i = 0; i < n_cards; i++) {

printf(" %d", n[i]);
}
printf(": ");
printf(solve24(n) ? "\n" : "No solution\n");
return 0;
}

【在 H********g 的大作中提到】
: 需要贴出程序全文,运行条件,运行时间,调试参数,log
H********g
发帖数: 43926
28
好高级,还用C

【在 I********d 的大作中提到】
: http://rosettacode.org/wiki/24_game/Solve#C
: 改一下就行了。这是输入4个的,可以改成输入3个的。
: 6 17 3 7: No solution
: ……
: #include
: #include
: #include
: #define n_cards 4
: #define solve_goal 29
: #define max_digit 9

d****o
发帖数: 32610
29
穷举了
没解
def solveForT(pool, target, minUsed):

import itertools
import numpy as np
import sys
A=pool+[0]*(4-minUsed)
err = 1e-5

vals = np.array(list(itertools.permutations(range(len(A)))))
ops = np.array(list(itertools.product('+-*/',repeat=3)))
exprs = ['(({}{}{}){}{}){}{}', '{}{}(({}{}{}){}{})',\
'{}{}({}{}({}{}{}))', '({}{}({}{}{})){}{}',\
'({}{}{}){}({}{}{})']

for i in vals:
for j in ops:
for f in exprs:
formula = f.format(A[i[0]], j[0], A[i[1]], j[1],\
A[i[2]], j[2], A[i[3]])
try:
res = eval(formula)
if abs(res - target) < err:
print(formula)
except ZeroDivisionError:
continue
solveForT([3,6,7,17],29,2)

【在 i*i 的大作中提到】
: 有无聊的吗?四年级小孩的题俺居然不会啊
: 用6,17,3,7,加,减,乘,除,怎么得出29?数字可以不用,但不能用两次。

m********n
发帖数: 3812
30

LOL !!!

【在 s*********n 的大作中提到】
: 3 6 - 7 = 29
相关主题
请教一道面试题Amex黑卡 - Once you go black you will never go back
Given coins of value {k1, k2, ..., km}, 用最少硬币数组成一个sum 咋做啊Joke版禁止黄色图片
老外的称呼真阴险 (转载)天寒地冻
进入Joke版参与讨论
F*********u
发帖数: 12190
31
正确答案没有引起重视
一帮索南还在编程,唉

【在 s*********n 的大作中提到】
: 3 6 - 7 = 29
w*********s
发帖数: 8428
32
哈哈,这个不错

【在 s*********n 的大作中提到】
: 3 6 - 7 = 29
d****o
发帖数: 32610
33
那就是
3!*6-7=29

【在 s*********n 的大作中提到】
: 3 6 - 7 = 29
H********g
发帖数: 43926
34
刘擦

【在 d****o 的大作中提到】
: 那就是
: 3!*6-7=29

c********w
发帖数: 2438
35
(7 / 3) * 6 + 17

【在 i*i 的大作中提到】
: 有无聊的吗?四年级小孩的题俺居然不会啊
: 用6,17,3,7,加,减,乘,除,怎么得出29?数字可以不用,但不能用两次。

p*e
发帖数: 6785
36
zhe ge 可以

【在 c********w 的大作中提到】
: (7 / 3) * 6 + 17
H********g
发帖数: 43926
37
=14+17=31

【在 c********w 的大作中提到】
: (7 / 3) * 6 + 17
N*****m
发帖数: 42603
38
.....

【在 c********w 的大作中提到】
: (7 / 3) * 6 + 17
F*********u
发帖数: 12190
39
四舍五入到10的时候可以

【在 p*e 的大作中提到】
: zhe ge 可以
p*e
发帖数: 6785
40
he meant
[7 / 3]

【在 H********g 的大作中提到】
: =14+17=31
相关主题
天寒地冻一个数组给一个int n, 求数组内能相加得到n的所有组合
买买提普天同庆,MIT进NCAA Playoff了 (转载)请教一道面试题,关于tree的
全球暖化现在美国东西部实现了, 哈哈Ebay二电面,铁挂了,这回求安慰吧。。。
进入Joke版参与讨论
c********w
发帖数: 2438
41
得cast成int就是

【在 p*e 的大作中提到】
: zhe ge 可以
a***e
发帖数: 27968
42
明显出错了,尼玛没见过17的扑克牌

★ 发自iPhone App: ChineseWeb 13

【在 H********g 的大作中提到】
: 我们小时候都是玩算24,为啥这个要算29
d****o
发帖数: 32610
43
python 3要写成7//3了

【在 p*e 的大作中提到】
: he meant
: [7 / 3]

H********g
发帖数: 43926
44
取整?

【在 p*e 的大作中提到】
: he meant
: [7 / 3]

l**********i
发帖数: 11748
45
花擦
这是火柴棍算法

【在 s*********n 的大作中提到】
: 3 6 - 7 = 29
1 (共1页)
进入Joke版参与讨论
相关主题
发一个Startup的面经 - Affirm买买提普天同庆,MIT进NCAA Playoff了 (转载)
这个值得申么?全球暖化现在美国东西部实现了, 哈哈
请教一道面试题一个数组给一个int n, 求数组内能相加得到n的所有组合
Given coins of value {k1, k2, ..., km}, 用最少硬币数组成一个sum 咋做啊请教一道面试题,关于tree的
老外的称呼真阴险 (转载)Ebay二电面,铁挂了,这回求安慰吧。。。
Amex黑卡 - Once you go black you will never go back问个题1:implement + - * / without arithmetic operation
Joke版禁止黄色图片问一道fb的面试题目
天寒地冻zenefits店面 -已挂了
相关话题的讨论汇总
话题: expr话题: op话题: ex话题: num话题: return