v********9 发帖数: 2047 | 1 大家都玩过扑克牌算24,就是四张扑克,用加减乘除凑成24,但是4张牌全部要用上。
假设用“算24”的规则,a,b,c,d四个正整数,能算出1,2,3……(n-1)之间所有的数,
而n是第一个无法算出的数,那么记f(a,b,c,d)=n。例如,f(1,1,1,1)=5;f(1,2,3,4)=
29,大家可以验证一下,应该是1~28都可以算出但是算不出29。请问使得f值最大的(a,
b,c,d)?
我能找到的是f(1,2,4,9)=41
同样对于5个数f(a,b,c,d,e)呢?
谢谢高手们了! | x**y 发帖数: 10012 | 2 1249 难道算不出来 72么 ?
)=
a,
【在 v********9 的大作中提到】 : 大家都玩过扑克牌算24,就是四张扑克,用加减乘除凑成24,但是4张牌全部要用上。 : 假设用“算24”的规则,a,b,c,d四个正整数,能算出1,2,3……(n-1)之间所有的数, : 而n是第一个无法算出的数,那么记f(a,b,c,d)=n。例如,f(1,1,1,1)=5;f(1,2,3,4)= : 29,大家可以验证一下,应该是1~28都可以算出但是算不出29。请问使得f值最大的(a, : b,c,d)? : 我能找到的是f(1,2,4,9)=41 : 同样对于5个数f(a,b,c,d,e)呢? : 谢谢高手们了!
| x**y 发帖数: 10012 | 3 哦
ic
明白了
理解错了
你说是 1道n-1是连续的
)=
a,
【在 v********9 的大作中提到】 : 大家都玩过扑克牌算24,就是四张扑克,用加减乘除凑成24,但是4张牌全部要用上。 : 假设用“算24”的规则,a,b,c,d四个正整数,能算出1,2,3……(n-1)之间所有的数, : 而n是第一个无法算出的数,那么记f(a,b,c,d)=n。例如,f(1,1,1,1)=5;f(1,2,3,4)= : 29,大家可以验证一下,应该是1~28都可以算出但是算不出29。请问使得f值最大的(a, : b,c,d)? : 我能找到的是f(1,2,4,9)=41 : 同样对于5个数f(a,b,c,d,e)呢? : 谢谢高手们了!
| x**y 发帖数: 10012 | 4 让daj or swordsman来吧
他们都是高手
【在 x**y 的大作中提到】 : 哦 : ic : 明白了 : 理解错了 : 你说是 1道n-1是连续的 : : )= : a,
| v********9 发帖数: 2047 | 5 呵呵,呼唤高手!!
【在 x**y 的大作中提到】 : 让daj or swordsman来吧 : 他们都是高手
| F******k 发帖数: 7375 | 6 只能用10或者以下的数么?我玩24点的时候可以用J Q K等,分别当 11,12,13用,只是
有时候算不出。 | v********9 发帖数: 2047 | 7 本题可以用所有自然数啊,只不过目前(1,2,4,9)是我找到的最大值
玩牌的时候我也是用11,12,13的,呵呵,那样好玩很多,比如算出(2,2,K,K)当年就
很费了我一番脑筋 | b***u 发帖数: 12010 | 8 f(1, 2, 4, 10)=51
这四个数所有解如下。逗号间是每次运算的两个数,将就看吧。写程序算的。没写遍历
自然数的算法。。写了f
1+2, 4+10, 3+14, = 17
1+2, 4+10, 14-3, = 11
1+2, 4+10, 3*14, = 42
1+2, 4-10, 3--6, = 9
1+2, 10-4, 6-3, = 3
1+2, 10-4, 3*6, = 18
1+2, 10-4, 6/3, = 2
1+2, 4*10, 3+40, = 43
1+2, 4*10, 40-3, = 37
1+2, 4*10, 3*40, = 120
1+2, 4+3, 10*7, = 70
1+2, 4-3, 10*1, = 10
1+2, 4*3, 10+12, = 22
1+2, 10+3, 4*13, = 52
1+2, 10-3, 4*7, = 28
1+2, 10*3, 4+30, = 34
1+2, 10*3, 30-4, = 26
1-2, 4+10, -1+14, = 13
1-2, 4+10, 14--1, = 15 | b***u 发帖数: 12010 | 9 今天比较蛋疼。4张牌A to K最优解是f{2,3,6,7} = 55.程序算的。 | v********9 发帖数: 2047 | 10 呵呵,大牯就是牛啊,确实如此,人脑对(1,2,4,10)容易漏掉35和45
【在 b***u 的大作中提到】 : f(1, 2, 4, 10)=51 : 这四个数所有解如下。逗号间是每次运算的两个数,将就看吧。写程序算的。没写遍历 : 自然数的算法。。写了f : 1+2, 4+10, 3+14, = 17 : 1+2, 4+10, 14-3, = 11 : 1+2, 4+10, 3*14, = 42 : 1+2, 4-10, 3--6, = 9 : 1+2, 10-4, 6-3, = 3 : 1+2, 10-4, 3*6, = 18 : 1+2, 10-4, 6/3, = 2
| | | v********9 发帖数: 2047 | 11 呵呵,牛!遍历所有自然数呢?
【在 b***u 的大作中提到】 : 今天比较蛋疼。4张牌A to K最优解是f{2,3,6,7} = 55.程序算的。
| b***u 发帖数: 12010 | 12 这应该让数学大牛来证明一下大于多少了就上界了
【在 v********9 的大作中提到】 : 呵呵,牛!遍历所有自然数呢?
| v********9 发帖数: 2047 | 13 脑子有点昏了,(2,3,6,7)中间有好多算不出啊……
【在 b***u 的大作中提到】 : 今天比较蛋疼。4张牌A to K最优解是f{2,3,6,7} = 55.程序算的。
| b***u 发帖数: 12010 | 14 2+3, 6+7, 5+13, = 18
2+3, 6+7, 13-5, = 8
2+3, 6+7, 5*13, = 65
2+3, 6-7, 5+-1, = 4
2+3, 6-7, 5--1, = 6
2+3, 7-6, 5*1, = 5
2+3, 6*7, 5+42, = 47
2+3, 6*7, 42-5, = 37
2+3, 6*7, 5*42, = 210
2+3, 6+5, 7*11, = 77
2+3, 6-5, 7*1, = 7
2+3, 6*5, 30-7, = 23
2+3, 7+5, 6*12, = 72
2+3, 7+5, 12/6, = 2
2+3, 7-5, 6*2, = 12
2+3, 7-5, 6/2, = 3
2+3, 7*5, 6+35, = 41
2+3, 7*5, 35-6, = 29
2-3, 6+7, 13--1, = 14
2-3, 6-7, -1*-1, = 1
2-3, 6*7, 42--1, = 43
2-3, 6+-1, 7*5, = 35
2-3, 6--1, 7*7, = 49
2-
【在 v********9 的大作中提到】 : 脑子有点昏了,(2,3,6,7)中间有好多算不出啊……
| v********9 发帖数: 2047 | | b***u 发帖数: 12010 | 16 犯了个精度错误。正确结果是f(1,2,5,8) =52
1+2, 5+8, 3+13, = 16
1+2, 5+8, 13-3, = 10
1+2, 5+8, 3*13, = 39
1+2, 5-8, 3--3, = 6
1+2, 8-5, 3*3, = 9
1+2, 8-5, 3/3, = 1
1+2, 5*8, 3+40, = 43
1+2, 5*8, 40-3, = 37
1+2, 5*8, 3*40, = 120
1+2, 5+3, 8*8, = 64
1+2, 5-3, 8/2, = 4
1+2, 5*3, 8+15, = 23
1+2, 5*3, 15-8, = 7
1+2, 8+3, 5*11, = 55
1+2, 8-3, 5*5, = 25
1+2, 8*3, 5+24, = 29
1+2, 8*3, 24-5, = 19
1-2, 5+8, -1+13, = 12
1-2, 5+8, 13--1, = 14
1-2, 5-8, -1--3, = 2
1-2, 5-8, -1*-3, = 3
1-2, 5*8, 40--1,
【在 v********9 的大作中提到】 : 老大,34呢?44,47呢?
| v********9 发帖数: 2047 | 17 兄弟你真是强悍。。。。。拜服!
接下来帮我推广到(a,b,c,d)可不限于1~13的情况(其实我觉得数大了反而不行),和5个数的情况吧,呵呵
【在 b***u 的大作中提到】 : 犯了个精度错误。正确结果是f(1,2,5,8) =52 : 1+2, 5+8, 3+13, = 16 : 1+2, 5+8, 13-3, = 10 : 1+2, 5+8, 3*13, = 39 : 1+2, 5-8, 3--3, = 6 : 1+2, 8-5, 3*3, = 9 : 1+2, 8-5, 3/3, = 1 : 1+2, 5*8, 3+40, = 43 : 1+2, 5*8, 40-3, = 37 : 1+2, 5*8, 3*40, = 120
| b***u 发帖数: 12010 | 18 我是brute force, 再下去你得找数学家. 5个数我的算法算不完了。应该可以优化,不
过不想搞了。
和5个数的情况吧,呵呵
【在 v********9 的大作中提到】 : 兄弟你真是强悍。。。。。拜服! : 接下来帮我推广到(a,b,c,d)可不限于1~13的情况(其实我觉得数大了反而不行),和5个数的情况吧,呵呵
| D**C 发帖数: 6754 | 19 en
confirmed
1,2,5,8 52 | v********9 发帖数: 2047 | 20 恩,怎么confirm的,展开说说?
【在 D**C 的大作中提到】 : en : confirmed : 1,2,5,8 52
| | | D**C 发帖数: 6754 | 21 帖个源码
差不多了,没优化
package com.db.equitech.stupidgame;
public class StupidGame {
public static void main(String ...strings)throws Exception {
StupidGame.mainMethod();
}
public static void mainMethod(){
double a=0, b=0, c=0, d=0;
for(a=0; a<14; a++){
for(b=0; b<14; b++){
for(c=0; c<14; c++){
for(d=0; d<14; d++){
int i=0;
while(testFunction(i, a, b, c, d)){
【在 v********9 的大作中提到】 : 恩,怎么confirm的,展开说说?
| D**C 发帖数: 6754 | | v********9 发帖数: 2047 | 23 牛……老大,别abcd都<14啊,拿扑克牌就是个比方。。。。能推广到全部自然数么? | D**C 发帖数: 6754 | 24 显然可以阿
【在 v********9 的大作中提到】 : 牛……老大,别abcd都<14啊,拿扑克牌就是个比方。。。。能推广到全部自然数么?
| D**C 发帖数: 6754 | 25 5个数以上也可以,就是要再加一段,不过当然也可以写程序循环
【在 D**C 的大作中提到】 : 显然可以阿
| v********9 发帖数: 2047 | 26 呵呵,DPZC老大你给下abcd任意自然数的答案吧,虽然我个人觉得,数大了f值反而不会很
大 | b***u 发帖数: 12010 | 27 这个可能会跟我的第一版一样有精度问题。
递归解法, 适用任意张牌任意N:
这个方法有重复在于比如a b c d, a+b => c+d => sum up 和 c+d => a+b => sum up
会重复算。应该有办法改进,不过现在不想搞了。
void allRes(const vector& iOperands, set& oResult)
{
if(iOperands.size() == 0) return;
if(iOperands.size() == 1 &&
(iOperands[0] - (int)iOperands[0] < 0.000001 || 1 - iOperands[0] + (
int)iOperands[0] < 0.000001 )&&
iOperands[0] > 0.000001)
{
int res = (int)iOperands[0];
if(iOperands[0] - (int)iOperands[0] > 0.
【在 D**C 的大作中提到】 : 帖个源码 : 差不多了,没优化 : package com.db.equitech.stupidgame; : public class StupidGame { : public static void main(String ...strings)throws Exception { : StupidGame.mainMethod(); : } : public static void mainMethod(){ : double a=0, b=0, c=0, d=0; : for(a=0; a<14; a++){
| Y*****2 发帖数: 38613 | | v********9 发帖数: 2047 | 29 哥哥们,f(2,3,4,22)=53
不知道还会不会有更大的 | D**C 发帖数: 6754 | 30 靠,这叫工作,不叫nerd
就跟会计会跟你解释tax一样
【在 Y*****2 的大作中提到】 : wow 你们这群nerd, 太牛了,太可爱了
|
|