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

Pythonでしきい値のパーセンテージに到達するために必要な5つ星のレビューの数をカウントするプログラム


レビューと呼ばれるリストとしきい値tがあるとします。 review [i]の各アイテムに[x、y]があるということは、製品iがx個の5つ星評価とy個のレビューを持っていることを意味します。これらのアイテムリストの5つ星のレビューの割合が少なくともtパーセントになるように、必要な追加の5つ星のレビューの最小数を見つける必要があります。

したがって、入力がreviews =[[3、4]、[1、2]、[4、6]] threshold =78のような場合、出力は7になり、合計で8つの5つ星のレビューがあります。 12件のレビュー。 5つ星のレビューの78%に到達するには、さらに7つの5つ星のレビューが必要です。

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

  • a:=0、b:=0

  • レビューの5つ星カウントcとレビューカウントdごとに、実行します

    • a:=a + c

    • b:=b + d

  • a * 100> =t * bの場合、

    • 0を返す

  • デルタ:=t * b-100 * a

  • (デルタ+(99-t))/(100-t)

    のリターンフロア

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

def solve(reviews, t):
   a = 0
   b = 0
   for c, d in reviews:
      a += c
      b += d
   if a * 100 >= t * b:
      return 0
   delta = t * b - 100 * a
   return (delta + (99 - t)) // (100 - t)

reviews = [
   [3, 4],
   [1, 2],
   [4, 6]
]
t = 78
print(solve(reviews, t))

入力

[[3, 4], [1, 2],[4, 6] ],78

出力

7

  1. Pythonのsの個別の部分文字列の数をカウントするプログラム

    文字列sがあるとすると、sの個別の空でない部分文字列の数を見つける必要があります。 したがって、入力がs =abaaの場合、サブストリングは[a、 b、 ab、 ba、 aa、 aba、 であるため、出力は8になります。 baa 、abaa]。 これを解決するには、次の手順に従います- トライ:=新しい地図 n:=sのサイズ 0からn-1の範囲のiの場合、do curr:=trie iからn-1の範囲のjの場合、do c:=s [j] cがcurrにない場合は、 curr [c]:=新しいマップ curr:=curr [c] curr [*]:=True

  2. PythonでnノードのBSTの数をカウントするプログラム

    n個の異なるノードがあるとします。すべてが異なります。二分探索木を形成するためにそれらを配置できる方法の数を見つける必要があります。二分探索木で知っているように、左側のサブツリーは常に小さい値を保持し、右側のサブツリーは大きい値を保持します。 これを解決するために、カタラン数を見つけます。カタラン数C(n)は、n個の異なるキーを持つ二分探索木を表します。式は次のようになります $$ C(n)=\ frac {(2n)!} {(n + 1)!\ times n!} $$ したがって、入力がn =3の場合、出力は5になります。 これを解決するには、次の手順に従います- 関数ncr