ベルク・カッツェ
頑張って数えたのに正解にならないと思ったら、なんか簡単な条件に変わってました。
一桁 9
二桁 72
三桁 9×8×6=432
1000台から7000台 192×7=1344
80XXから86XX 24×6=144
8697が2001番目
8695が2000番目
   2月27日(木) 1:22:08     53850
ベルク・カッツェ
あと問題文に一番小さいのが1とあったのでその前提で解きましたが、正しくは0が条件を満たす一番小さい整数だと思います。
それから、0〜9は2つの数をとれないのでそもそも条件に合わない気もしますね。
   2月27日(木) 1:26:22     53851
ゴンとも
十進Basic で1つめは4桁で何番目を出すのかで

FOR a=1 TO 9
if a<>9 then let s0=s0+1
FOR b=0 to 9
if b=a then goto 80
if a+b<>9 then let s1=s1+1
FOR c=0 to 9
if c=a or c=b then goto 70
if a+b<>9 and a+c<>9 and b+c<>9 then let s2=s2+1
FOR d=0 to 9
if d=a or d=b or d=c then goto 60
IF a+b<>9 AND a+c<>9 AND a+d<>9 AND b+c<>9 AND b+d<>9 AND c+d<>9 THEN LET s3=s3+1
60 next d
70 next c
80 next b
90 NEXT a
PRINT s0;s1;s2;s3;2000-s0-s1-s2-1
END

f9押して  8 72 432 1728 1487  より

2つめは
4桁で1487番目より

FOR a=1 to 9
FOR b=0 to 9
if b=a then goto 30
FOR c=0 TO 9
IF c=a OR c=b THEN GOTO 20
FOR d=0 TO 9
IF d=a OR d=b OR d=c THEN GOTO 10
IF a+b=9 OR a+c=9 OR a+d=9 OR b+c=9 OR b+d=9 OR c+d=9 THEN GOTO 10
LET n=n+1
IF n=1487 THEN PRINT 10^3*a+10^2*b+10*c+d
10 next d
20 next c
30 next b
40 NEXT a
END

f9押して 8695・・・・・・(答え)
豊川市   2月27日(木) 1:52:44     53852
ろろ
一桁は2つの数を選べないので、9は条件を満たしていると考えるのですね。
どうしても答えが合わなくて苦労しました。
   2月27日(木) 4:06:04     53853
「数学」小旅行
4桁になることをまずみつけて、192、24、4そして3を順に積み上げて2000にしました。
   2月27日(木) 4:43:24     53854
スモークマン
朝起きたら、条件が変わってましたのね ^^;
ベルク・カッツェ様と同様に考えました ^^

同じ数字があってもよければ...2110になるのでしょうか??? 自信なし...^^;
   2月27日(木) 9:41:32     53855
清一
第1315回。
   2月27日(木) 11:24:28     53857
「数学」小旅行
もっと良い方法があるのでは、、、ですが
def c(a)
(a.include?(0)&a.include?(9))|(a.include?(1)&a.include?(8))|(a.include?(2)&a.include?(7))|(a.include?(3)&a.include?(6))|(a.include?(4)&a.include?(5))
end
p (0..9).to_a.permutation(4).to_a.delete_if{|s|(s[0]==0)|c(s)}[2000-1-9-72-432]
   2月27日(木) 13:28:53     53858
手描き図面職人
chatGPTにプログラムを作成して貰いました。プログラムは、
def is_valid(num):
  digits=list(map(int,str(num)))
  if len(digits)!=len(set(digits)):
    return False
  for i in range(len(digits)):
    for j in range(i+1,len(digits)):
      if digits[i]+digits[j]==9:
        return False
  return True
count=0
num=0
while count<2000:
  num+=1
  if is_valid(num):
    count+=1
print(num)
chatGPTは、凄いですね。
   2月27日(木) 13:31:57     53859
「数学」小旅行
改良してワンラインにしました。
p (0..9).to_a.repeated_permutation(4).to_a.last(9999).map{|x|x.last(4-x.index{|t|t>0})}.delete_if{|s|(s.size!=s.uniq.size)|((0..s.size-1).to_a.combination(2).map{|y|(s[y[0]]+s[y[1]])==9}.inject(:|))}[1999]
   2月27日(木) 16:09:35     53860
「数学」小旅行
#53857 そうですね。
全然記憶にありませんでした。
掲示板を見て、この前の自分の解き方が今回の自分と全く逆であることに驚きました。
前回は上から下げていきましたが、今回は下から積み上げていくやり方でした。
おもしろいものですね。
   2月27日(木) 16:22:41     53861
KawadaT
ベルク・カッツェさんと同じ数え方です。
基本的考えは、9×8×6×4×2の五桁がマックス
上の桁から順に決めていきます。

一桁 9(二つは選べないが、緑&#128994;条件に合致すると考えて)通り
二桁 9×8=72通り
三桁 9×8×6=432通り
四桁7986まで、8×6×4×7=1344通り
8023から8697まで6×4×6=144通り
以上、合計して2001通りなので、
2000番目は、8697の一つ前である8695
   2月27日(木) 17:40:34     53862
JUST_COMMUNICATION
2000年の東大理系数学が元ネタですね。
   2月28日(金) 20:59:55     53863
Mr.ダンディ
 「なんて面倒な問題」とおもいつつ 月曜日までねばり 3507とという値を送信しようとしたら
マサルさんの「お詫び」に気が付き愕然! 計算しなおしたらすぐに 8695に至るりました。
(一発入力で正解したのがせめてもの救い)
茨木市   3月3日(月) 14:28:29     53864