Python
 Computer >> コンピューター >  >> プログラミング >> Python

ドメインと範囲がPythonで関数を形成しているかどうかを確認するプログラム


ドメインを表すxというデータのリストと範囲を表すデータyのリスト(yのサイズはxのサイズと同じ)があるとします。 x->yが関数であるかどうかを確認する必要があります。ここでは、xとyのすべての要素が正であると見なしています。

したがって、入力がx =[1,3,2,6,5] y =[1,9,4,36,25]のようである場合、各xについて、対応するyはTrueであるため、出力はTrueになります。ここではその二乗値なので、これは関数です。

これを解決するには、次の手順に従います-

ここでは、簡単な一連の手順を検討しています。この問題は、複雑な方法でも解決できます。

  • mp:=新しいマップ
  • 0からxのサイズの範囲のiについては、
    • a:=x [i]
    • b:=y [i]
    • aがmpにない場合は、
      • mp [a]:=b
    • それ以外の場合、
      • Falseを返す
  • Trueを返す

理解を深めるために、次の実装を見てみましょう-

def solve(x, y):
   mp = {}
   for i in range(len(x)):
      a = x[i]
      b = y[i]
      if a not in mp:
         mp[a] = b
      else:
         return False
   return True

x = [1,3,2,6,5]
y = [1,9,4,36,25]
print(solve(x, y))

入力

[1,3,2,6,5], [1,9,4,36,25]

出力

True

  1. Pythonで葉のシーケンスが2つの葉と同じであるかどうかを確認するプログラム

    2つの二分木があるとします。両方の木の左から右への葉の順序が同じであるかどうかを確認する必要があります。 したがって、入力が次のような場合 両方のツリーのシーケンスが[2、6]であるため、出力はTrueになります。 これを解決するには、次の手順に従います。 c:=新しいリスト 関数inorder()を定義します。これが定着し、c cがnullの場合、 c:=新しいリスト rootがnullでない場合、 順序(ルートの左側、c) ルートの左側がnullで、ルートの右側がnullの場合、 cの最後にrootの値を挿入 順序(ルートの権利、c) return c

  2. 与えられたグラフがPythonで2部グラフであるかどうかをチェックするプログラム

    無向グラフが1つあるとすると、グラフが2部グラフであるかどうかを確認する必要があります。グラフのすべてのエッジ{u、v}がAに1つのノードuを持ち、Bに別のノードvを持つように、グラフのノードを2つのセットAとBに分割できる場合、グラフは2部グラフであることがわかります。 したがって、入力が次のような場合 次に、出力はTrueになり、[0,4]はセットAにあり、[1,2,3]はセットBにあり、すべてのエッジはAからAまたはBからBではなく、AからBまたはBからAになります。 。 これを解決するために、次の手順に従います- 関数dfs()を定義します。これはソースを取ります