Mohammad S. Anwar が主催する Weekly Challenge は、開発者が 2 つのタスクを解決することで競うフレンドリーなコンテストです。学習、共有、楽しみを通じて、あらゆる言語とレベルの開発者の参加を奨励します。
タスク 1: ウィークリー チャレンジの美しい配置では、開発者は、正の整数から生成されたすべての順列の中から美しく配置された順列の数を見つけます。
この投稿では、タスク 1: 美しい配置について説明し、その解決策を提示し、短い結論で終わります。
ウィークリー チャレンジ 300 の締め切りは、2024 年 12 月 23 日日曜日 23:59 (英国時間) です。偏見を避けるために、競技後にこの投稿を読むことを検討してください。
正の整数 $int が与えられます。
$int から構築できる美しいアレンジメントの数を返すスクリプトを作成します。
すべての i (1
- permutation[i] は i で割り切れます
- i は順列[i]で割り切れます
ウィークリー チャレンジ 300、タスク 1: 美しいアレンジメント
例 1 と 2 は、指定された入力から予想される出力を示しています。
Input: $n = 2 Output: 2
n = 2 で、i 個の整数 (1
順列 (1, 2) は、すべての要素が最初の条件に一致するため、美しい配置です。
permutation(2, 1) も、そのすべての要素が最初または 2 番目の条件のいずれかに一致するため、美しい配置です。
Input: $n = 1 Output: 1
Input: $n = 10 Output: 700
from itertools import permutations def generate_permutations(n) iterable = list(range(1, n + 1)) return permutations(iterable) def count_beautiful_arrangements(perms): num_beautiful_arr = 0 for perm in perms: is_beautiful_arr = True for value_index, value in enumerate(perm): if value % (value_index + 1) == 0: continue elif (value_index + 1) % value == 0: continue else: is_beautiful_arr = False break if is_beautiful_arr == True: num_beautiful_arr += 1 return num_beautiful_arr
私の洗練されていない洗練されていないソリューションでは、generate_permutations と count_Beautiful_arrangements という 2 つの関数を利用しています。
generate_permutations は、パラメーター n に対して、1
count_beauty_permutations は、permutations の反復可能な perms パラメーターに対して、美しい配置条件に一致するパーマの順列の総数を返します。
この投稿では、タスク 1: 美しい配置について説明し、私の解決策を紹介しました。私の「洗練されておらず洗練されていない」ソリューションは機能しますが、改善の余地はかなりあります。
以上がWeekly Challenge の美しいアレンジメントをタスク化するための私の Python 言語ソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。