これより2~3時間の間、メンテナンスを行います。大変ご迷惑をおかけ致しますが、コミュニティ改善のため、ご理解とご協力のほどよろしくお願い致します。
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
Tokimatsu
クエーサー

できました。

スポイラ
Horizontal Tab Group を使ってスクショを撮りました。同時に表示して本体を実行してもマクロ側は動きませんのであしからず。
あと iteration の数え方って微妙ですよね。 
スクリーンショット 2024-05-23 183705.png