Free Trial

ウィークリーチャレンジ

トップになるためのスキルをお持ちですか? ウィークリーチャレンジを購読しましょう。ベストを尽くして問題を解決し、解決策を共有して、他のユーザーがどのように同じ問題に取り組んだのか確認しましょう。私たちも解答例を共有しています。

チャレンジ #255: 新年のラッキーナンバーは何ですか?

AYXAcademy
Alteryx
Alteryx

 

先週のチャレンジの回答はこちらで見つけることができます。

 

happiness-839034_1280 (1).jpgRoland van Leeuwenは少し前にこのアイデアを投稿しましたが、今こそこれを共有する適切な時期です。2024年が近づいてきたので、自分だけのラッキーナンバーを決めてみましょう。@RWvanLeeuwenさん、コミュニティの貢献に感謝します。

 

セレンディピティ スプリングスの静かな町には、カプレカー数に関連した魔法の伝統が存在します。住民は、魔法の数字「6174」が幸運を解く鍵を握っていると信じています。この神秘的なつながりは、毎年大晦日に祝われ、お祭りに興奮と神秘の雰囲気を添えています。

 

カプレカー数のルールに従って、町の人々は自分の生まれ年を入力し、数字を昇順と降順に並べ、大きい方の数字から小さい方の数字を引き、魔法の数字6174になるまでこのプロセスを繰り返します。このプロセスで使用される反復回数は、個々の幸運な番号を表すと考えられています。

 

例えば、誰かの生まれ年が1977年だったとすると、次のプロセスが適用されます(カプレカー数を適用するために、数字は少なくとも二つの異なる数字を含む必要があります。また、先頭の数字の0は許容されます)。

 

  1. 1977を降順に並べ替えます:9771
  2. 1977を昇順に並び替えます:1779
  3. 大きな数値から小さな数値を引き算します:9771-1779=7992(初回の繰り返し)
  4. ステップ3の結果を使い、ステップ1、2の処理を適用します(2回目の繰り返し)
  5. 結果が6174になるまで繰り返します
    1. 9972 - 2779 = 7173(2回目の繰り返し)
    2. 7731 - 1377 = 6354
    3. 6543 - 3456 = 3087
    4. 8730 - 0378 = 8352
    5. 8532 - 2358 = 6174(結果が6174になるまで6回繰り返しました)

もしあなたが1977生まれなら、セレンディピティ スプリングスの習慣に従って、あなたのラッキーナンバーは6です。

 

長い話ですよね?それでは、あなたの課題は何でしょうか?

 

Alteryx Designerを使用して、カプレカー数を検証し、あなたのラッキーナンバーを生成するところを想像してみてください。

 

タスク:

タスク1:カプレカー数のルールを適用すると、少なくとも二つの異なる数値を持つすべての4桁の整数がすべて6174に変換されるプロセスを検証します。

タスク2:このルールセットを使用して、4桁の数値を6174に変換するために必要な反復の最大値と最小値を見つけます。

タスク3:あなたのラッキーナンバーを決定します。

 

ヒント:

チャレンジを解く方法は自由に選ぶことが出来ますが、以下は私達が提案する方法です。

  • 反復マクロを作成し、カプレカー数のルールを適用すると、少なくとも2つの異なる数字を持つ4桁の整数がすべて6174に変換されるプロセスを検証します。
  • 反復マクロを使用するバッチマクロを作成し、このルールを使用して4桁の数値を6174に変換するために必要な反復の最大値と最小値を見つけます。
  • あなたのラッキーナンバーを決めるために、バッチマクロをあなたの誕生年でワークフローに適用します(私達はソリューションでは1977を使用しました)。
Qiu
20 - Arcturus
20 - Arcturus

出来ました。

スポイラ
challenge_ja_255.PNG
gawa
15 - Aurora
15 - Aurora

3です!マクロ無しで、ツールゴルフ的に解いてみました。

スポイラ
行生成ツールで頑張りました。
1つめのインプットの行生成のループ条件を改造して、1111,2222....のぞろ目をスキップさせています。
if Mod(num + 1,1111)=0 then num+2 else num+1 endif​

image.png
AkimasaKajitani
17 - Castor
17 - Castor

できました!

 

スポイラ
20240207_1.png



20240207_2.png

@gawa さん 行生成ツールの中身はもう見たくないくらいになってそうですね・・・。

 

sanae
ボリード

やってみました。マクロなしすごいです・・・!

スポイラ
challenge_255_start_file_ja_sanae.png
gawa
15 - Aurora
15 - Aurora
スポイラ

正規表現を使って 数字が大きいものから並べていった数字 ー 数字が小さいものから並べていった数字 を計算します。
見通しはめちゃくちゃ悪いです。

ToNumber(
Padright(
Padleft("",Regex_countmatches(Tostring(Result),"9"),"9")
+Padleft("",Regex_countmatches(Tostring(Result),"8"),"8")
+Padleft("",Regex_countmatches(Tostring(Result),"7"),"7")
+Padleft("",Regex_countmatches(Tostring(Result),"6"),"6")
+Padleft("",Regex_countmatches(Tostring(Result),"5"),"5")
+Padleft("",Regex_countmatches(Tostring(Result),"4"),"4")
+Padleft("",Regex_countmatches(Tostring(Result),"3"),"3")
+Padleft("",Regex_countmatches(Tostring(Result),"2"),"2")
+Padleft("",Regex_countmatches(Tostring(Result),"1"),"1")
+Padleft("",Regex_countmatches(Tostring(Result),"0"),"0")
,4,"0")
)
-
ToNumber(
Padleft("",Regex_countmatches(Tostring(Result),"0"),"0")
+Padleft("",Regex_countmatches(Tostring(Result),"1"),"1")
+Padleft("",Regex_countmatches(Tostring(Result),"2"),"2")
+Padleft("",Regex_countmatches(Tostring(Result),"3"),"3")
+Padleft("",Regex_countmatches(Tostring(Result),"4"),"4")
+Padleft("",Regex_countmatches(Tostring(Result),"5"),"5")
+Padleft("",Regex_countmatches(Tostring(Result),"6"),"6")
+Padleft("",Regex_countmatches(Tostring(Result),"7"),"7")
+Padleft("",Regex_countmatches(Tostring(Result),"8"),"8")
+Padleft("",Regex_countmatches(Tostring(Result),"9"),"9")
)

@AkimasaKajitani 地獄みたいなIncrementになっています。Low codeツール・・・?

DaisukeTsuchiya
パルサー

できました。

 

スポイラ
スクリーンショット 2024-02-09 162235.pngスクリーンショット 2024-02-09 162356.png
smiyazawa
コメット

できました。

スポイラ

スクリーンショット 2024-02-12 144229.pngスクリーンショット 2024-02-12 144305_1.png