-
Pythonの階段を使用して次の階に到達できる方法の数を見つけるためのプログラム
N段の階段があるとします。ステップバイステップで進むことも、各ステップで最大Nステップのジャンプを行うこともできます。最上階に行く方法をいくつも見つけなければなりません。 N値は大きい可能性があり、多数のウェイの最初と最後のK桁にのみ関心があります。 したがって、入力がN =10 k =2の場合、10のステップがあるため、出力は63になります。トップに移動できる方法がS個ある場合、Sはwxyzの形式であると見なします。したがって、wx+yzの合計は63です。 これを解決するには、次の手順に従います- N:=N-1 c:=2 *(k + log(N); base10)の上限 e:=
-
各プレフィックスとサフィックスがPythonの場合よりも多くのBを持つように文字を配置できる方法の数を見つけるためのプログラム
n個のAと2n個のBを持つ文字列があるとします。各接頭辞と各接尾辞のBの数がAの数以上になるように可能な配置の数を見つける必要があります したがって、入力がn =2の場合、2つのAと4つのBがあるため、出力は4になります。したがって、可能な配置は[BBAABB、BABABB、BBABAB、BABBAB]です。 これを解決するには、次の手順に従います- メソッドの解決を定義します。これにはnがかかります nが1と同じ場合、 1を返す nが2と同じ場合、 リターン4 nが奇数の場合、 return find(floor of(n-1)/ 2)^ 2 それ以外の場合、
-
Pythonで指定された条件に従っているすべての順列の要素の数を見つけるプログラム
1からnまでのすべての要素が存在する集合Aがあるとします。そして、P(A)はAに存在する要素のすべての順列を表します。与えられた条件を満たすP(A)の要素の数を見つける必要があります 範囲[1、n]のすべてのiについて、A[i]はiと同じではありません すべてのj
-
Pythonでn個のノードを持つすべての単純な無向グラフのコストの合計を見つけるプログラム
n個のノードを持つ無向グラフGがあるとします。ここで、単純な無向グラフのコストがそのノードのコストの合計であると考えてください。また、ノードのコストはD ^ kです。ここで、Dはその次数です。これで、n個とk個の値ができました。 n個のノードを持つすべての可能な単純な無向グラフのコストの合計を見つける必要があります。結果は非常に大きくなる可能性があるため、1005060097を法として結果を返します。 したがって、入力がn =3 k =2の場合、出力は36になります。これは、3つのノードを持つ8つの単純なグラフがあるためです。 エッジが3つしかない1つのグラフで、コストは2 ^ 2 + 2
-
Pythonでジャンプするかどうかによって位置nに到達できることを確認するプログラム
1からnまでの数直線があるとします。最初は位置0にあり、1ステップジャンプして1に進み、次に2桁ジャンプして位置3に到達し、次に3位置ジャンプして6に到達します。これを維持するかどうかを確認する必要があります。位置nに到達できるかどうか。 したがって、入力がn =21の場合、1 + 2 + 3 + 4 + 5 + 6 =21 であるため、出力はTrueになります。 これを解決するには、次の手順に従います- j:=(1 +(1 + 8 * n)の平方根)/ 2 if | j --int part of j | <=0、次に Trueを返す それ以外の場合はFalseを返します
-
Pythonで特定の配列のすべてのサブ配列の合計の2乗の合計の合計を見つけるプログラム
リストAがあるとします。n個の要素を持つリストlには(2n-1)個の空でないサブリストがあることがわかっているので、Aのすべての空でないサブリストを取得しました。次に、サブリストごとに、sublist_sum(要素の合計とS 1 で表す)を計算します。 、S 2 、S 3 、...、S (2N-1) )。 P =2 S1となるような特別な合計Pがあります。 + 2 S2 +2 S3 .... + 2 S(2N-1) 。 Pを見つける必要があります。Pが大きすぎる場合は、P mod(10 ^ 9 + 7)を返します。 したがって、入力がA =[2,2,3]の場合、出力は次
-
Pythonで数値の三角形の行lの最初のイベント番号の位置を見つけるプログラム
以下のような数の三角形を生成していると仮定します 1 1 1 1 1 2 3 2 1 1 3 6 7 6 3 1 ここで、各行の要素は、その上に3つの数字を追加することによって生成されます。ここで、行番号がlの場合。その行の最初の偶数の位置を見つける必要があります。位置の値は1から始まります。 したがって、入力がl =5の場合、出力は2になります 1 1 1 1 &nb
-
Pythonで指定されたnの指定されたシーケンスの最後の桁を見つけるプログラム
値nがあるとします。シーケンスSの最後の桁を見つける必要があります。Sの式は次のとおりです- $$ \ sum_ {i =0 \:2 ^ {^ {i}} \ leqslant n} ^ {\ alpha} \ sum_ {j =0} ^ {n} 2 ^ {2 ^ {^ {i} + 2j }} $$ したがって、入力がn =2の場合、出力は6になります。これは、次の理由によります。ここでは、i =0とiのみが有効であるため、 S 0 =2 ^(2 ^ 0 + 0)+ 2 ^(2 ^ 0 + 2)+ 2 ^(2 ^ 0 + 4)=42 S 1 =2 ^(2 ^ 1 + 0)+
-
Pythonで4つのパラメーターを持つ与えられた方程式の解の数を見つけるためのプログラム
a、b、c、dの4つの数があり、次の方程式に従うようなペアの数(x、y)を見つける必要があるとします。x^ 2 + y ^ 2 =(x * a)+( y * b)ここで、xは範囲[1、c]にあり、yは範囲[1、d]にあります したがって、入力がa =2 b =3 c =2 d =4の場合、1つのペアが(1、1)であるため、出力は1になります。 これを解決するには、次の手順に従います- ans:=0 1からcの範囲のxについては、 l:=x *(x-a) det2:=b * b-4 * l det2が0と同じで、bが偶数で、1 <=(b / 2)のフロア<=dの場合、 an
-
Pythonで時間t後に予想されるウイルスの増殖を見つけるプログラム
危険なウイルスがあり、それが急速に増殖するとします。ウイルス細胞の数がx倍に成長する確率は0.5であり、ウイルス細胞の数がy倍に成長する確率も0.5です。ここで、最初にウイルスのセルが1つあった場合は、t時間後に予想されるウイルスセルの数を計算します。答えが大きすぎる場合は、modの結果は10 ^ 9+7になります。 したがって、入力がx =2、y =4、t =1の場合、最初はウイルスにセルが1つしかないため、出力は3になります。 x時間後、確率0.5で、そのサイズは2倍(x2)になり、他の0.5の確率で、そのサイズは4倍になります。したがって、時間t =1以降の予想されるウイルス細胞数は、
-
Pythonで配列の要素を並べ替えるのに必要なシャッフルの予想数を見つけるプログラム
要素numsのセットがあるとします。降順ではない順序で並べ替える必要があります。ただし、並べ替えの手法はランダム化されています。配列がソートされているかどうかをチェックします。ソートされていない場合は、ランダムにシャッフルして再度チェックします。すべての要素がソートされるまで、このプロセスを続けます。この場合、それらをソートするために必要なシャッフルの予想数を見つける必要があります。小数点以下6桁までの回答を表示してください。 したがって、入力がnums =[5,2,7]のような場合、3つの順列が可能であるため、出力は6になり、確率は1/3になります i =1回の反復でソートされた配列を
-
PythonでLotusandCaterpillarゲームに勝つために必要な予想される動きの数を見つけるためのプログラム
n行m列のグリッドがあるとします。アマルとビマルはそのグリッドでゲームをプレイしています。ゲームルールは以下のようになります- アマルは一番上の列のどこかに白い蓮のタイルを置き、ビマルは一番下の列のどこかに毛虫のタイルを置きます。アマルはゲームを開始し、彼らは交互に遊んでいます。アマルは自分のタイルを現在のセルのグリッド内の8つの隣接するセルのいずれかに移動できますが、ビマルのキャタピラータイルはグリッド内で左または右に移動するか、同じ位置にとどまることができます。アマルの目標は、できるだけ少ない動きでビマルを捕まえることですが、ビマル(毛虫のタイルを使用)はできるだけ長く生き残る必要があり
-
プログラムは、Pythonで指定された条件を満たすカラフルな頂点のサブセットの数を見つけます
1つの正多角形の色を表す配列色があるとします。ここで、このn-gonの各頂点は、指定された配列に存在するn個の異なる色の1つでランダムに色付けされました。これらのサブセットがこれらの条件を満たすように、ポリゴン頂点の特別なサブセットの数を見つける必要があります- サブセットのサイズは少なくとも2つである必要があります。 サブセットに存在する頂点をポリゴンから削除すると(これらの頂点の隣接するエッジも削除されます)、残りの頂点とエッジはいくつかの連続したパスを形成します。 これらのパスのいずれにも、同じ色の2つの頂点を含めることはできません。 そのようなサブセットの数を数える必要があります
-
find(x、y)の値を見つけるプログラムはPythonでは偶数または奇数です
配列numsがあるとします。また、別のペア(x、y)があり、値find(x、y)が奇数か偶数かを見つける必要があります。 find()は次のとおりです y find(x、y)=nums [x] ^ find(x + 1、y)それ以外の場合 したがって、入力がnums =[3,2,7](x、y)=1、2のようである場合、-であるため、出力は偶数になります。 find(1、2)=nums [1] ^ find(2,3) find(2、2)=nums [2] ^ find(3,2) find(3、2)=1、 したがって、find(2、2)=7、およびfind(1、2)=2 ^
-
nの適切な約数がPythonでさらに完全な平方数になる確率を見つけるためのプログラム
数がnであるとすると、nの適切な約数がさらに完全な正方形になる確率を見つける必要があります。 したがって、入力がn =36の場合、36の適切な除数が8つあるため、出力は1/8になります。これらは、{1,2,3,4,6,9,12,18}であり、その中には1つの数(4)だけが完全な平方であり、偶数です。 これを解決するには、次の手順に従います- n mod 4が0と同じでない場合、 0を返す それ以外の場合、 nc:=n、ptr:=2 l:=新しいリスト ptr <=ncの平方根、do a:=0 nc mod ptrは0と同じですが、 a:=a + 1 nc:=(
-
Pythonで指定された制約を使用して、最小値と最大値の間の一般的な分数を見つけるプログラム
最大値と最小値の2つの長整数値があるとします。 min <=d<=maxとなるような一般的な分数n/dを見つける必要があります。そして|n/ d --pi |最小です。ここで、pi =3.14159265 ...であり、この条件を保持する分数が複数ある場合は、分母が最小の分数を返します。 したがって、入力が最小=1最大=10のようである場合、出力は22/7になります。 これを解決するには、次の手順に従います- P:=分数(5706674932067741 / 1816491048114374)-3 a:=0、b:=1、c:=1、d:=1 farey:=ペアの配列で、最初は(a、
-
Pythonで合計値がkで割り切れるN個の自然数からペアの数を見つけるプログラム
数nと別の値kがあるとすると、最初のN個の自然数を持つ配列Aがあるとすると、Aから要素A[i]とA[j]のペアの総数を見つける必要があります。
-
Pythonでn個の1をmで割った後の余りを見つけるプログラム
nとmの2つの数があるとします。 n個の1をmで割った余りを求めます。 したがって、入力がn =4 m =27の場合、1111 mod 27 =4であるため、出力は4になります。 これを解決するには、次の手順に従います- 関数util()を定義します。これにはx、n、mが必要です y:=1 0の場合、do nが奇数の場合、 y:=(y * x)mod m x:=(x * x)mod m n:=n/2のフロア yを返す (util(10、n、9 * m)/ 9)のメインメソッドリターンフロアから 例 理解を深めるために、次の実装を見てみましょう- d
-
多くの子供たちがPythonでルールを維持しながらキャンディーを配布しながらキャンディーを手に入れる鍬を見つけるプログラム
k個のキャンディーがあるとします。私たちはそれらを子供たちに分配しなければなりません。今、いくつかのルールがあります i番目の子供はi^2個のキャンディーを受け取ります インデックスiの子供は、インデックス1からi-iまでのすべての子供にサービスが提供されるまでキャンディーを受け取りません i番目の子供がi^2個のキャンディーを受け取らない場合、それは有効なサーブではありません。 したがって、入力がk =20の場合、出力は3になります。これは、最初の1つが1になり、2番目の値が2 ^ 2 =4になり、3番目の値が3 ^ 2 =9になりますが、4番目の値には4が必要だからです。 ^ 2 =
-
Pythonで最後にn個の0を持つように数mを見つけるプログラム
数nがあるとします。 mの階乗が少なくともn個の0を持つように、最小の数mを見つける必要があります。 したがって、入力がn =2の場合、出力は10になるため、出力は10になります。 =3628800および9! =362880、ゼロが2つある最小数は10です。 これを解決するには、次の手順に従います- 関数count_fives()を定義します。これにはnがかかります cnt:=0 0の場合、do n:=(n / 5)のフロア cnt:=cnt + n return cnt メインの方法から、次の手順を実行します- 左:=1 右:=5 ^ 24 5、実行 mid