AtCoder Daily Training EASY【灰】2024_1030_2000

Поділитися
Вставка
  • Опубліковано 1 січ 2025

КОМЕНТАРІ • 6

  • @ばらさん-b5d
    @ばらさん-b5d 2 місяці тому +2

    お疲れ様です!
    長さdの線分を全部進むとx方向はA進むことができる。
    長さ1進むということは全体の1/dだけ進むので、x方向はA*(1/d)進むことができる。
    小数点以下の固定桁数表示は、printfで簡単に書ける。
    printf("%.6f %.6f", x, y);

  • @Lit_to
    @Lit_to 2 місяці тому +1

    小数扱う問題難しいですよね~・・

  • @小学5年生-g6u
    @小学5年生-g6u 2 місяці тому +1

    えぇ、今日も!?
    オーバーワークじゃなければいいが…。
    魔の水曜日なのに学習お疲れ様でした!
    明日ゆっくり見させてもらいます🙋

    • @WillowLog
      @WillowLog  2 місяці тому

      できなかったりしたところも含め、週後半は調べたり…ですね(›´ω`‹ )

  • @まっちゃぷりん-k9n
    @まっちゃぷりん-k9n 2 місяці тому +1

    今回の問題は問題文がちょっとわかりにくかったですね~.
    この問題は,数学IIBのベクトルの単元を調べるのがよいかと思います.
    点(0, 0)から点(A, B)に距離1だけ移動するには,まずは移動する方向を求める必要があります.
    移動する方向というのは,つまり,点(0, 0)から点(A, B)まで,x方向y方向それぞれについてどれだけ移動したかというのと同じ意味ですから,(A-0, B-0)が,移動する方向になります.
    また,実際に(A-0,B-0)だけ移動すると,移動距離はsqrt((A-0)*(A-0) + (B-0)*(B-0))になりますから(これをdと置くことにします),移動距離を1にしたければ,
    ((A-0)/d, (B-0)/d)とすればいいことになります.
    最後に,点(0, 0)から((A-0)/d, (B-0)/d)だけ移動すれば,求める答えになります.
    ベクトルの考えかたを用いれば,まず *P* = (a, b)というように,x方向y方向の値をひとつの記号であらわすことにします.
    *O* = (0, 0), *X* = (A, B)とあらわしたとき, *O* から *X* への方向ベクトルを *V* とすれば,
    *V* = *X* - *O* = (A, B) - (0, 0) = (A-0, B-0)とあらわせます.
    ここで *V* の大きさを| *V* |とおくと,| *V* | = sqrt((A-0)*(A-0) + (B-0)*(B-0))となります.
    もとめる点を *P* とおくと,これは *O* から *V* の方向に距離1だけ移動した点であり,次のように表現できます.
    *P* = *O* + *V* /| *V* | = (0, 0) + (A-0, B-0)/| *V* | = (0 + (A-0)/| *V* |, 0 + (B-0)/| *V* |) = (A/| *V* |, B/| *V* |)