找回密码
 欢迎注册
查看: 49769|回复: 14

[求助] 难求的一个等式

[复制链接]
发表于 2009-6-5 08:58:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
“(23×10+46÷2)-(189×3+67) =389 ”是个错误的等式,移动一个"数字"使得等式成立。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-6-5 10:59:03 | 显示全部楼层
是移动一个数字,不是交换一个数字吧?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-6-5 11:12:56 | 显示全部楼层
我记得一个比较经典的例子是移动一个数字使“62-1=63”成立, 答案是将“2”前面的“6”移到其右肩上。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-6-5 15:55:03 | 显示全部楼层
3# gxqcn 好像就是这种方法 2*10^3
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-6-5 15:59:45 | 显示全部楼层
还不对。 这样左边将=1389,还多了个数字“1”。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-6-5 16:18:08 | 显示全部楼层
呵呵,算错了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-6-5 16:40:09 | 显示全部楼层
不过,已非常“神似”相等了,不容易。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-6-5 16:56:16 | 显示全部楼层
如果仅仅移动一个数字(可以变成指数)但是不允许移动任意操作符,或者丢弃一个数字,或者用一个数字覆盖另外一个数字,无解
  1. // md.cpp : Defines the entry point for the console application.
  2. //
  3. #include "stdafx.h"
  4. #include <math.h>
  5. int d[8]={23,10,46,2,189,3,67,389};
  6. int e[8];
  7. int s[4]={0,0,10,100};
  8. void test_value()
  9. {
  10. if(e[3]==0)return;
  11. int s=e[0]*e[1]+e[2]/e[3]-(e[4]*e[5]+e[6])-e[7];
  12. if(s==0){
  13. printf("(%d*%d+%d/%d)-(%d*%d+%d)=%d\n",e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[6]);
  14. }
  15. }
  16. void try_insert_h(int h)
  17. {
  18. int i,j;
  19. test_value();
  20. for(i=0;i<8;i++){
  21. int olde=e[i];
  22. for(j=0;j<=3;j++){
  23. if(olde>=s[j]){
  24. switch(j){
  25. case 0:
  26. e[i]=olde*10+h;
  27. break;
  28. case 1:
  29. e[i]=(olde/10)*100+h*10+olde%10;
  30. break;
  31. case 2:
  32. e[i]=(olde/100)*1000+h*100+olde%100;
  33. break;
  34. case 3:
  35. e[i]=h*1000+olde;
  36. break;
  37. }
  38. test_value();
  39. }
  40. }
  41. for(j=0;j<=2;j++){
  42. if(olde>=s[j+1]){
  43. switch(j){
  44. case 0:
  45. e[i]=(olde/10)*10+h;
  46. break;
  47. case 1:
  48. e[i]=(olde/100)*100+h*10+olde%10;
  49. break;
  50. case 2:
  51. e[i]=h*100+olde%100;
  52. break;
  53. }
  54. test_value();
  55. }
  56. }
  57. double d=pow((double)olde,h);
  58. if(d<=100000.0){
  59. e[i]=(int)d;
  60. test_value();
  61. }
  62. e[i]=olde;
  63. }
  64. }
  65. void try_move_one_digit(int x)
  66. {
  67. int i,j,u,h;
  68. if(d[x]<100){
  69. u=2;
  70. }else{
  71. u=3;
  72. }
  73. for(i=0;i<u;i++){
  74. for(j=0;j<8;j++)e[j]=d[j];
  75. switch(i){
  76. case 0:
  77. h=d[x]%10;
  78. e[x]=d[x]/10;
  79. break;
  80. case 1:
  81. h=(d[x]/10)%10;
  82. e[x]=d[x]-h*10;
  83. break;
  84. case 2:
  85. h=d[x]/100;
  86. e[x]=d[x]%100;
  87. break;
  88. }
  89. try_insert_h(h);
  90. }
  91. }
  92. int _tmain(int argc, _TCHAR* argv[])
  93. {
  94. int i;
  95. for(i=0;i<8;i++){
  96. if(d[i]>=10){
  97. try_move_one_digit(i);
  98. }
  99. }
  100. return 0;
  101. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-6-5 16:57:21 | 显示全部楼层
也许一种取巧的方法是将一个1移动到=上面(这样看起来有点像不等号了).不过结果就不是等式了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-6-6 05:54:26 | 显示全部楼层
大家再认真考虑一下
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-22 13:16 , Processed in 0.029824 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表