usakdsteen

ゆうさくですてぃーん

2023年07月17日(Mon)の独り言

の呟きは 47

 < の独り言 | の独り言 | の独り言 > 
  •  (UPD ) #

    まぁ数式の定義的にはどこかで循環が発生しうるだろうけど
    modで制限されるから最大でも50515093種類のポイントしか生成できないだろうし(実際に50515093種類発生するとは限らんけど

    そして実際にはそれより1桁以上少ない2000000個のポイントを生成しろってお題なわけだから
    重複してない可能性はある

    •  (UPD ) #

      (omitted)

    •  (UPD ) #

      さて、2000000個のポイントを総当りで距離計算するのは、まぁ無理
      (2000000*1999999/2)通りの組み合わせであり
      PCの計算能力的に無理ゲー

      •  #

        まぁ
        ともかく
        ひとまず d(14) を求めてみるを実行するのがよいかな・・・

        •  #

          一応、求まった

          f:id:neetsdkasu:20230717021936p:plain
          •  #

            うん、まぁ厳しい

            f:id:neetsdkasu:20230717021947p:plain
            •  #

              0をもう1個足したら
              時間オーバーです

              •  (UPD ) #

                解法を全く思いつけない

                •  #

                  キョープロから離れて数年経つし
                  色々と忘れているから分からないという可能性もある・・・?

                •  #


                  P(n) = [S(2*n), S(2*n+1)]
                  = [S(2*n), S(2*n)^2 mod M]

                  P(n+1) = [S(2*(n+1)), S(2*(n+1)+1)]
                  = [S(2*n+2), S(2*n+3)]
                  = [S(2*n+1)^2 mod M, S(2*n+2)^2 mod M]
                  = [(S(2*n)^2 mod M)^2 mod M, (S(2*n+1)^2 mod M)^2 mod M]
                  = [(S(2*n)^2 mod M)^2 mod M, *1, S(2*(n+2)+1)]
                  = [S(2*n+4), S(2*n+5)]
                  = [S(2*n)^16 mod M, S(2*n)^32 mod M]

                  となる・・・?

                  わからん、数学苦手なので怪しい

                  •  (UPD ) #

                    P(0) = [S(0), S(1)] = [s0, s0^2 mod M]
                    P(1) = [S(2), S(3)] = [s0^4 mod M, s0^8 mod M]
                    P(2) = [S(4), S(5)] = [s0^16 mod M, s0^32 mod M]
                    P(3) = [S(6), S(7)] = [s0^64 mod M, s0^128 mod M]

                    になるの?

                •  (UPD ) #

                  P(a) = [S(2*a), S(2*a+1)]

                  P(b) = [S(2*b), S(2*b+1)]


                  DIST(P(a), P(b)) = SQRT( (S(2*a) - S(2*b))^2 + (S(2*a+1) - S(2*b+1))^2 )


                  diffX = S(2*a) - S(2*b) = (s0^A mod M) - (s0^B mod M)

                  diffX^2 = (S(2*a) - S(2*b))^2
                  = S(2*a)^2 - 2*S(2*a)*S(2*b) + S(2*b)^2

                  diffY = S(2*a+1) - S(2*b+1) = (s0^(2*A) mod M) - (s0^(2*B) mod M)

                  diffY^2 = (S(2*a+1) - S(2*b+1))^2
                  = S(2*a+1)^2 - 2*S(2*a+1)*S(2*b+1) + S(2*b+1)^2

                  うーんん・・・

                •  #

                  法則性も見えてこない
                  性質もわからん

                  愚直2時間しかないのか

                •  #

                  まったくわからん

                  •  #

                    雑なものとして
                    平面を均等分割して
                    自区画および隣接区画内の点同士のみ総当りをテストする、というのがありうる

                    本当にランダムでかつ均等に分布していることが期待できるなら、計算量を減らせるはず・・・?

                    •  (UPD ) #

                      現実的な範囲において
                      ランダムが均等に分布してる保証はない、が

                      •  #

                        実用レベルの擬似乱数なら
                        現実的な範囲で均等に分布してるものが採用はされているだろうけど

                    •  #

                      ・・・マジ?

                      f:id:neetsdkasu:20230717172946p:plain
                    •  #

                      100x100の区画で
                      これ

                      f:id:neetsdkasu:20230718004730p:plain
                      •  #

                        100x100だと10000以下ではうまく処理できない可能性

                        •  #

                          まぁ10000以下は総当りで良さそう

                    •  #

                      区画サイズ指定してやるようにしてみた・・・

                      f:id:neetsdkasu:20230718004741p:plain
                      •  #

                        これが想定解法だったら、いやだなぁ・・・

                        •  #

                          いあ、確率論に基づくのも数学だろうけど・・・

                        •  #

                          (omitted)

                      •  #

                        (omitted)

                    •  #

                      (omitted)

              •  #

                これのコード、時間計算量は(n^2)だから
                0をもう一個足したら時間100倍になる
                11秒の100倍なので1100秒…?
                お題のkにするには更に4倍かかるので4400秒・・・?

                まぁIDEONEと同等スペックマシンで2時間はかからないね・・・

                我がPCはIDEONEよりかなり劣るスペックなので、絶望時間

                •  #

                  まぁ、素直なやり方が通るので難易度5%なんだろう・・・

    •  #

      50515093種類にはならんね・・・
      0か1になった時点で変化しなくなるから
      最大でも50515092種類にしかならんね・・・

  •  #

    イベント助っ人進捗

           戦 武 魔 僧 バ 魔 パ 賢
         絆 士 闘 使 侶 ト 戦 ラ 者
    レック  30  8  8  8  2  8  1  0  0
    ハッサン 30  8  8  1  8  1  0  8  0
    ミレーユ 30  1  8  8  8  0  0  3  8
    バーバラ 30  8  1  8  8  0  8  0  8
    テリー  30  8  8  8  8  8  1  8  5

    •  #

      えっと
      助っ人ってザオラル使ってくれないのか、ザオラルよりベホイミが優先されるのか
      どっちなんだろうか

      13章フィールド、辛すぎる

      •  #

        助っ人というよりは
        バッチリがんばれという作戦でザオラル使うか否かか・・・

        •  #

          オートバトルでザオラルは使ってくれるらしいが
          ベホイミ等の回復が優先されるらしい・・・

          •  (UPD ) #

            ザオラルの優先順位を上げるには
            死者以外がオート行動の回復対象にならないほどHPが十分にある(状態異常回復系は不明
            もしくは
            ザオラル以外の回復系スキルを持たない

            などが必須らしい

            •  (UPD ) #

              オートバトルに拘りのあるプレーヤーたちは工夫がすごいね・・・

  •  (UPD ) #

    git for windowsのgit bashにfactorが入っているのなあ・・・

  •  #

    https://ja.wikipedia.org/wiki/%E5%B9%B3%E6%96%B9%E5%89%B0%E4%BD%99

    ヘイホージョーヨ・・・?

    わからん

  •  #

    https://ja.wikipedia.org/wiki/%E6%95%B4%E6%95%B0%E3%81%AE%E5%90%88%E5%90%8C

    まるでわからん・・・

  •  #

    そういや擬似乱数
    線形合同法(?)とかいうので偏りが出るとかいう話なかったっけ・・・?

  •  (UPD ) #

    擬似乱数ねえ・・・わからん

    https://en.wikipedia.org/wiki/List_of_random_number_generators

    https://en.wikipedia.org/wiki/Category:Pseudorandom_number_generators

    https://en.wikipedia.org/wiki/Category:Non-uniform_random_numbers

    https://en.wikipedia.org/wiki/Category:Random_number_generation

  •  (UPD ) #

    https://ja.wikipedia.org/wiki/%E6%8C%87%E6%95%B0_(%E5%88%9D%E7%AD%89%E6%95%B4%E6%95%B0%E8%AB%96)

    https://en.wikipedia.org/wiki/Primitive_root_modulo_n

    指数・・・?

    •  #

      シースー

  •  #

    https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A7%E3%83%AB%E3%83%9E%E3%83%BC%E3%81%AE%E5%B0%8F%E5%AE%9A%E7%90%86

    フェルマーのショーテーリー

  •  #

    Rustのイテレータってイテレータ自身のコピー作れないの?

    •  #

      Iteratorの実装のほうにCloneとかあるなら可能ぽそう?
      sliceのIterはCloneがある

      •  #

        うーん
        chainで型が変わるの厳しいなぁ

 < の独り言 | の独り言 | の独り言 > 

*1:S(2*n)^2 mod M)^2 mod M)^2 mod M]
= [S(2*n)^4 mod M, S(2*n)^8 mod M]

P(n+2) = [S(2*(n+2