ベルク・カッツェ
枠/着順の表を作りアルファベットを追記していくと、Aは3枠5着になりました。
   4月21日(木) 0:06:08     51449
むらかみ
3位の〓〓〓〓〓〓〓〓が私のような気がします。
その後に送りなおした名前はうまく反映されています。
   4月21日(木) 0:07:45     51450
しとお
私も表を描きました。少しずつ表が埋まっていくのが気持ちよくて楽しかったですね
   4月21日(木) 0:13:41     51451
Mr.ダンディ
ベルク・カッツェさんの #51449と同様にしました。
   4月21日(木) 0:14:17     51452
紫の薔薇の人
5×5の表を作って解きました。
各行各列には、A〜Eが一つしか入らないので、徐々に解けていきます。

1着 4枠 C
2着 2枠 B
3着 1枠 E
4着 5枠 D
5着 3枠 A
になりました。

だから、答えは「3,5」
   4月21日(木) 0:20:21     51453
「数学」小旅行
不可能な順列を消していくと絞れました。
   4月21日(木) 1:23:29     51454
Sunachu
5x5x5の立方体で考えたら簡単でした。
   4月21日(木) 9:30:36     51456
中DA
僕も5×5の表を使って解きました。
Aの着順が最初に求まりました。
   4月21日(木) 20:43:11     51457
SECOND
!こんな問題をプログラムで解くには、どうすればよいか?? 難題で、、仕方ない、
!順列 P(5,5)=120 の2乗、14400通り、全てのケースを検査した。1通りだけで他には無い。
!人の哲学的解法を、代行させるには、どうすればよいだろう・・

!ok= 0 1
!ok= 0 2
!ok= 0 3
!    (
!    )
!ok= 0 6220
!ok= 1 6221

! - - E - -
! - B - - -
! - - - - A
! C - - - -
! - - - D -

!ok= 0 6222
!    (
!    )
!ok= 0 14399
!ok= 0 14400

DIM m(120,5), z(5), h$(5,5)
DATA 1,2,3,4,5
MAT READ z
CALL perm20(1) !z(5)=1,2,3,4,5 の順列 P(5,5) の展開を m(120,5)に作成
!
FOR y=1 TO 120
FOR x=1 TO 120
MAT h$="-"& NUL$ !h$(枠,着順) を 空マーク"-"で埋める
FOR i=1 TO 5
LET h$(m(y,i),m(x,i))=CHR$(i+64) !P(5,5)^2=14400通りの (枠,着順)ケースを h$(5,5) に順次作成
NEXT i
CALL check !観客ア〜観客キの条件、検査
LET n=n+1
PRINT "!ok=";ok;n
IF ok=1 THEN
PRINT
MAT PRINT USING "! # # # # #" :h$
PRINT
pause
END IF
NEXT x
NEXT y

!-------------------------------------------
! 配列 h$(1~5枠,1~5着順) の中味 ABCDE の検査
!-------------------------------------------
SUB check
LET ok=0
!--------------------
!観客ア Cは4枠かー。
!--------------------
FOR i=1 TO 5
IF h$(4,i)="C" THEN EXIT FOR
NEXT i
IF 5< i THEN EXIT SUB
!--------------------
!観客イ Eは、5枠の馬よりは先着したよ。
!--------------------
FOR i=1 TO 5
IF h$(5,i)<>"-" THEN EXIT FOR
NEXT i
FOR j=1 TO i-1
FOR w=1 TO 4
IF h$(w,j)="E" THEN EXIT FOR
NEXT w
IF w<=4 THEN EXIT FOR
NEXT j
IF i<=j THEN EXIT SUB
!--------------------
!観客ウ 1枠の馬、3着以下だね。
!--------------------
IF h$(1,1)<>"-" OR h$(1,2)<>"-" THEN EXIT SUB
!--------------------
!観客エ Bは2着かー、惜しいなぁ。
!--------------------
FOR i=1 TO 5
IF h$(i,2)="B" THEN EXIT FOR
NEXT i
IF 5< i THEN EXIT SUB
!--------------------
!観客オ 3枠の馬、5着だったよ...。
!--------------------
IF h$(3,5)="-" THEN EXIT SUB
!--------------------
!観客カ 2枠の馬は、1着にはなれなかったか。
!--------------------
IF h$(2,1)<>"-" THEN EXIT SUB
!--------------------
!観客キ Dは、1着の馬より外側の枠(注:枠の番号が大きいということ)だったなー。
!--------------------
FOR i=1 TO 5
IF h$(i,1)<>"-" THEN EXIT FOR
NEXT i
FOR i=i+1 TO 5
FOR j=2 TO 5
IF h$(i,j)="D" THEN EXIT FOR
NEXT j
IF j<=5 THEN EXIT FOR
NEXT i
IF 5< i THEN EXIT SUB
!--------------------
LET ok=1
END SUB

!-----------------------------------------------------
! z(5)=1,2,3,4,5 の 順列 P(5,5)を、m(120,5) に格納する
!-----------------------------------------------------
SUB perm20(k) !start CALL perm20(1)
local i
IF k<=5 THEN
FOR i=k TO 5
swap z(k),z(i)
CALL perm20(k+1)
swap z(k),z(i)
NEXT i
ELSE
LET p=p+1
FOR i=1 TO 5
LET m(p,i)=z(i)
NEXT i
END IF
END SUB

END
   4月22日(金) 11:17:43     51458
よんひ
python(手習い中)で制約プログラミングで解いてみました。
Google Colab上で、以下のコードを実行すると

UMA Chaku Waku
A 5 3
B 2 2
C 1 4
D 4 5
E 3 1

という結果が得られました。

------------------------

!pip install ortools

from ortools.sat.python import cp_model

class SolutionPrinter(cp_model.CpSolverSolutionCallback):
def __init__(self, u2c, u2w):
cp_model.CpSolverSolutionCallback.__init__(self)
self.__u2c = u2c
self.__u2w = u2w
self.__solution_count = 0

def solution_count(self):
return self.__solution_count

def on_solution_callback(self):
print('Solution %i,' % self.__solution_count)
self.__solution_count += 1

uma=['A','B','C','D','E']
print('UMA Chaku Waku')
for i in range(len(uma)):
print(f'{uma[i]} {self.Value(u2c[i])+1} {self.Value(u2w[i])+1}')
print()

m = cp_model.CpModel()
u2w=[m.NewIntVar(0,5-1,'u2w%i'% i) for i in range(5)]#馬→枠
w2c=[m.NewIntVar(0,5-1,'w2c%i'% i) for i in range(5)]#枠→着
u2c=[m.NewIntVar(0,5-1,'u2c%i'% i) for i in range(5)]#馬→着
m.AddAllDifferent(u2w)
m.AddAllDifferent(w2c)
m.AddAllDifferent(u2c)

for i in range(5):
m.AddElement(u2w[i],w2c,u2c[i])#馬→枠→着と馬→着が一致

#Cは4枠かー。
m.Add(u2w[2]==3)
#Eは、5枠の馬よりは先着したよ。
m.Add(u2c[4]<w2c[4])
#1枠の馬、3着以下だね。
m.Add(w2c[0]>=2)
#Bは2着かー、惜しいなぁ。
m.Add(u2c[1]==1)
#3枠の馬、5着だったよ...。
m.Add(w2c[2]==4)
#2枠の馬は、1着にはなれなかったか。
m.Add(w2c[1]!=0)
#Dは、1着の馬より外側の枠(注:枠の番号が大きいということ)だったなー。
c2w=[m.NewIntVar(0,5-1,'c2w%i'% i) for i in range(5)]#着→枠
m.AddInverse(w2c,c2w)
m.Add(u2w[3]>c2w[0])

# Solve the model.
solver = cp_model.CpSolver()
solution_printer = SolutionPrinter(u2c,u2w)
solver.parameters.enumerate_all_solutions = True
solver.Solve(m, solution_printer)
   4月22日(金) 17:04:42     51459
よんひ
この掲示板は行頭のスペースがトリムされてしまうんですね。pythonはスペースに文法上の意味があるので正しく入れないとエラーになります。
空行を除いた4,9,11,27行目に1つ
5-8,10,12-16,18行目に2つ
17行目に3つの
行頭のスペース(またはタブ)が付きます。
   4月22日(金) 18:09:37     51460