問題タブ [cyclic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
math - F(n) = F(n-1) - F(n-2)
私はプログラミング コンテスト F(n)= F(n-1)-F(n-2); でこのシーケンスに出くわしました。与えられた F0 と F1 で n 番目の項を見つける
( http://codeforces.com/contest/450/problem/B ) (コンテストは終了しました)
この問題の解決策は次のようになります。シーケンスは値 f0、f1、f1-f0、-f0、-f1、f0 - f1、そして再び f0 を取り、シーケンス全体が繰り返されます。
この値が繰り返されていることはわかりましたが、この循環的な順序の理由を見つけることができませんでした。周期的な順序とシーケンスを検索しましたが、周期の理由について実際の感触を与えることができる十分な資料を見つけることができませんでした.
haskell - Haskell 環状構造
には 2 つの定義がありones/0
、どちらも 1 の無限リストになります。
最初のものは環状構造であるが、2番目のものはそうではないと言われています。本当?そして、それは実際にはどういう意味ですか/構造が循環しているかどうかをどのように判断できますか?
java - 文字列を回文にするために文字列に対して実行される最小巡回 (前方または後方) シフト
以下は、問題の説明と解決策です。2 つのテスト ケースが失敗しました。私がそれを理解するのを手伝ってください。
文字列が両端から同じように読める場合、その文字列は回文であると言われます。stringS
を指定すると、巡回シフトを実行できます。より正式には、任意の端 (頭または尾) から任意の 1 文字を選択し、その文字をもう一方の端に追加できます。たとえば、文字列が の場合、"abc"
先頭の文字を使用してシフトすると、文字列は になり"bca"
ます。同様に、末尾の文字を使用してシフトすると、入力文字列は になり"cab"
ます。あなたの仕事は、与えられた文字列を回文にするのに必要なシフトの最小数を見つけることです。場合によっては、文字列を回文に変換してから印刷することはできません-1
。
入力形式: 最初の行T
はテストケースの数で始まり、その後T
に文字列を含む行が続きますS
。
出力形式: 回文にできる場合は各文字列の巡回シフトの最小数を出力し、それ以外の場合は-1
.
制約:
1<=T<=100
,
1<=|S|<=300
,S
には小文字のアルファベットのみが含まれます('a'-'z')
。
サンプル入力と出力
入力
出力
説明: テストケース 2 ( aaabb
) の場合: 末尾の文字を先頭に移動すると、結果は回文である「baaab」になります。これは、与えられた文字列を回文にするために最小限のシフト数を必要とする操作です。
テスト ケース 3 ( aabb
) の場合: 指定された文字列を回文に変換する 1 つの方法は、先頭の文字を末尾にシフトすることです。結果"abba"
は、回文である になります。別の方法は、末尾の文字を先頭に移動することであり、結果は になります"baab"
。これも回文です。どちらも 1 シフトだけで済みます。
types - 型定義がバリアントとして宣言されたときに循環として拒否され、それ以外の場合は受け入れられるのはなぜですか?
Chris Okasaki の Purely Functional Data Structures のデータ構造のいくつかを実装する OCaml をいじっていたところ、この型定義に出くわしました。
ユニオン型ではないのでタグは必要ないと思ったので、タグを削除してみましたが、次のエラーが発生しました。
一見同等に見える 2 つの型定義で、なぜこのようなことが起こるのでしょうか?
python - 長さ N のリストで長さ K の巡回シフトのすべての順列を効率的に生成する
長さ n のリストで長さ k の巡回シフトのすべての順列を生成するにはどうすればよいですか。ここで、シフトはサイクリックで右です。次の点に注意してください。
K==1 の場合、シフトはありません。したがって、これらの 0 シフトの順列はありません。
K==2 の場合、これは要素を交換することと同じです。したがって、すべて n! 順列を生成できます。
例えば。リストが [1 4 2] の場合、K=2 (したがって、0 から NK まで、ループ)
K==3 の場合、いくつかの順列が除外されるため、興味深いものになります。
例えば。if list=[1,3,4,2],K=3 (したがって、インデックス 0 から 4-3 まで、ループ)
これらの順列は、本来あるべき (24) の半分 (12) であることに注意してください。 このアルゴリズムを実装するために、私は現在バックトラッキングを使用しています。これが私がこれまでに試したことです(Pythonで)
これにより、出力が生成されます
これはまさに私が望んでいるものですが、ここでは再帰の深さが N>7 を超えているため、はるかに遅くなります。私は自分自身を明確に説明したことを願っています。最適化を行っている人はいますか?
c# - オブジェクトの循環転送
血流をモデル化しようとしています。それが得られるのと同じくらい簡単に、イベント(TimerTick)がユニットAからユニットBへ、BからCへ、CからAへのリソースオブジェクトの転送をトリガーしようとしています。ある反復から別の反復まで、以下に貼り付けたものよりもはるかに多くの異なる方法を試しました. ユニットは、構築後に三角形として接続されます。これにより最初のユニットが誤ったままになることは承知しており、それに対処するためにさまざまな方法を試しましたが (それが唯一の問題かどうかはわかりません)、どれもうまくいかなかったので投稿しません。1 つのユニットが他のユニットについて知る必要のないイベント設定のアイデアは、非常に高く評価されます。しかし、これを機能させる方法も高く評価されます。
java - インターフェイスの循環継承
Java でクラスの循環継承が許可されない理由は理解できましたが、インターフェースの循環継承が許可されない理由は理解できませんでした。説明する:
インターフェースはインスタンス化を必要としないのに、相互に拡張するのを妨げるものは何ですか?
ところで、私はこの質問を読みましたが、これはインターフェイスではなくクラスに関するものです: Java の巡回継承階層
前もって感謝します。
c++ - C++ 二重連結リストの「末尾削除」機能
私はすでに単一リンクの巡回リストを作成しましたが、これは正常に機能しましたが、この場合、テールを削除したい場合、ノードがテールとして挿入された場合にテールを削除するという問題が発生していますが、うまくいきません 'ヘッドとして挿入された場合。問題はinserthead-inserttail接続またはdelete tail機能にあると思いますが、見つかりません。私はあなたの助けに感謝します。
構造:
};
コード:
}
}
c++ - cpp の 10 進右巡回シフト
「10進右巡回シフト」と呼ばれる必要があります。たとえば、入力が8652
出力の場合は になります2865
。
文字列や文字列操作に変換せずに CPP でこの操作を行う方法はありますか? 算術演算、ループ、およびバイナリへの変換を使用するだけです。