[存档!]纯数学、物理学、化学等:与贸易没有任何关系的大脑训练问题 - 页 586

 
Aleksander:
大象被做成了棋子?
这是唯一的一步棋,在这一步中,前面的位置不是不可能的。
 
alsu:

在现实中,我将用一份副本进行一次传递,但我不会事先用两张纸来填充,而只是在传递已经完成时,在中间(剩余部分)填充。

这给了我们N个读操作,N个写操作和1个内存分配操作。我几乎想不出有什么比这更重要的了))。

ps更多的N个增量计数器操作)))


我认为分两次进行会比较快。没有一个如果!

void Sort123(int & a[]){
   int c[4];
   ArrayInitialize(c,0);
   int s=ArraySize(a);
      for(int i=0;i<s;i++){
         c[a[i]]++;
      }
      for(i=0;i<c[1];i++){
         a[i]=1;
      }
   c[2]+=c[1];
      for(i=c[1];i<c[2];i++){
         a[i]=2;
      }
      for(i=c[2];i<s;i++){
         a[i]=3;
      }
}
 
alsu:
这是唯一的一步棋,在这一步中,前面的位置不是不可能的。

它不是唯一的。我看到三种变体。

- 象从兵中垂直出来(兵在转变过程中没有吃到任何东西)。

- 象在对角线上(卒在第八横上吃了什么)。

- 从对角线上的一个小兵那里得到皇后(也在8号吃了点东西)。

P.S. 而且我最初只看到了白王棋的选项。但有人向我指出,当时应该有双重检查。

 
所以,多少钱会是。
A+B=...
 
Mathemat:

黑方投降了,但白方的最后一步棋是什么?


因此,我们已经定义了,白方的最后一步棋显然是将一个卒转化为一个子,即在这步棋之前,白方有一个卒在a7或b7的某个位置。不难计算出,在这两种情况下,这个卒(它最初可能只在f2位置)在对局中恰好下了5次吃掉。此外,请注意,站在a3,b4,c5位置的卒也有5个俘虏。总的来说,我们有10个捕获的黑棋。黑方现在在棋盘上有6个棋子,因此上述的10个捕获都是由白方的棋子完成的。

然而,在棋盘上f8没有黑象,鉴于e7和g7的黑卒,黑象不能被白卒吃掉,也不能离开他的位置。因此,黑棋的象没有被兵吃掉,而是被子吃掉。 因此,我们得出了一个矛盾,由此得出的答案是:这个位置是不可能的,根据国际象棋的规则不可能出现。

 
Mathemat:

不是唯一的一个。我看到三种可能性。

- 象从兵中垂直出来(兵在转变过程中没有吃到任何东西)。

- 象在对角线上(卒在第八横上吃了什么)。

- 从对角线上的一个小兵那里得到皇后(也在8号吃了点东西)。

P.S. 而且我最初只看到了白王棋的选项。但有人向我指出,当时应该有双重检查。

唯一正确的选择
 
是如果卒子变成了象......但由于这是不可能的 - 你证明了这一点...因此,最后一步棋不是一个卒...但白方的国王...并可能用F3-G3
 
Aleksander:
是如果卒子变成了象......但由于这是不可能的 - 你证明了这一点...因此,最后一步棋不是一个卒...但白方的国王...并可能用F3-G3
这也是不可能的:在f3上,国王被皇后和车牵制,不可能有开局牵制,因为皇后和车通过不同的位置进攻。
 
alsu:

因此,我们已经确定,白方的最后一步棋显然是将一个卒转化为一个子。

前提是错误的;)

真的没有足够的棋子来进行改造


欧罗巴
唯一正确的选择
唉,也没有足够的卒子
 
Europa:
唯一正确的选择
上面的帖子解释了为什么任何典当方案都会失败