先週のチャレンジの回答はこちらで見つけることができます。
Roland van Leeuwenは少し前にこのアイデアを投稿しましたが、今こそこれを共有する適切な時期です。2024年が近づいてきたので、自分だけのラッキーナンバーを決めてみましょう。@RWvanLeeuwenさん、コミュニティの貢献に感謝します。
セレンディピティ スプリングスの静かな町には、カプレカー数に関連した魔法の伝統が存在します。住民は、魔法の数字「6174」が幸運を解く鍵を握っていると信じています。この神秘的なつながりは、毎年大晦日に祝われ、お祭りに興奮と神秘の雰囲気を添えています。
カプレカー数のルールに従って、町の人々は自分の生まれ年を入力し、数字を昇順と降順に並べ、大きい方の数字から小さい方の数字を引き、魔法の数字6174になるまでこのプロセスを繰り返します。このプロセスで使用される反復回数は、個々の幸運な番号を表すと考えられています。
例えば、誰かの生まれ年が1977年だったとすると、次のプロセスが適用されます(カプレカー数を適用するために、数字は少なくとも二つの異なる数字を含む必要があります。また、先頭の数字の0は許容されます)。
もしあなたが1977生まれなら、セレンディピティ スプリングスの習慣に従って、あなたのラッキーナンバーは6です。
長い話ですよね?それでは、あなたの課題は何でしょうか?
Alteryx Designerを使用して、カプレカー数を検証し、あなたのラッキーナンバーを生成するところを想像してみてください。
タスク:
タスク1:カプレカー数のルールを適用すると、少なくとも二つの異なる数値を持つすべての4桁の整数がすべて6174に変換されるプロセスを検証します。
タスク2:このルールセットを使用して、4桁の数値を6174に変換するために必要な反復の最大値と最小値を見つけます。
タスク3:あなたのラッキーナンバーを決定します。
ヒント:
チャレンジを解く方法は自由に選ぶことが出来ますが、以下は私達が提案する方法です。
出来ました。
3です!マクロ無しで、ツールゴルフ的に解いてみました。
if Mod(num + 1,1111)=0 then num+2 else num+1 endif
やってみました。マクロなしすごいです・・・!
正規表現を使って 数字が大きいものから並べていった数字 ー 数字が小さいものから並べていった数字 を計算します。
見通しはめちゃくちゃ悪いです。
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ツール・・・?
できました。
できました。