超富裕層を目指す俺のコーディング練習(どうでもよい)

2022-02-02 投稿

IT

超富裕層を目指す俺のコーディング練習について。

一凡人 求職中の素人視点なので、真に受けずに疑って読んでくれ。


本日は2022年02月02日だ。見ての通り、西暦、月、日、十進法で0と2しか使われない。

どうでも良いが、このような2種類の数字しか使わない年月日はどれくらいあるだろう。

例えば、生きている内に、あと何回来るか。次は今月22日か?ではその次は?

0と2だけだと今年まだあって、来年以降2200年2月まで無い。80年後。

1と2だけを使用した年月日だと2111年1月2日だ。90年後だ。

ちなみに2だけを使用した年月日が2222年2月2日にやってくる。

前はいつあったのか?

2002年02月22日で、正解だろうか?すぐには分からない。

ではその前は?その前の前は?あるいは、西暦元年から、このような年月日を列挙するとどんな感じになるのか?

くだらない疑問が尽きなくなってくる。

さて、このような遊び?は実生活では意味が無い。数字がN種類使われているところで、普通の1日だ。

だがしかし、俺はここでゲス推測する。

このような誰でも考えるような事は、コーディング資格試験にでるかもしれない。

暇なのでJavascriptで考えてみよう。

頭の中で少し考えて浮かぶ単純なのはこんな感じだ。

const MINYEARS = 1900;
const MAXYEARS = 2100;
for ( y = MINYEARS; y <= MAXYEARS; y++ ) {
    for ( m = 1; m <= 12; m++ ) {
        for ( d = 1; d <= 31; d++ ) {
            if ( 28 < d  && m == 2 ) {
                break;
            } else if ( 30 < d  && 
            	(m == 4 || m == 6 || m == 9 || m == 11)) {
                break;
            }
            if (2==countNumOccurence(y,m,d)) {
            	console.log(y,m,d);
            }
        }
    }
}   

いくつか考慮すべき点もあるし、閏年を考慮に入れていないが最初はこんな感じか。上記の例だと1900年以降だが、西暦元年からだと、4200回あり、出力が長くなるのでこうしてある。

countNumOccurence()は何種の数字があるかを数える。色々やりかたあるだろうが、1つは以下の様な感じか。沢山改善できる点があるだろう。バグもあるだろう。

function countNumOccurence(y,m,d) {
  var s = y.toString()+m.toString()+d.toString();
	const nums=['0','1','2','3','4','5','6','7','8','9'];
  var c = 0;
  
  for (let n of nums) {
	if (s.includes(n)) {
    	c++;    
    }
  }
  return c;
}  

さて、これで見てみると:
前回は2002年2月22日ではなく、2020年2月22日だった。
次回は2022年2月22日ではなく、2022年2月20日だった。今月は3回あった。
だがそれ以降は2111年1月1日になる。

という事でほんの短いモノだがコーディングの練習とする。今後もJavascriptやPython等の短いコードで遊んでみたい。どうだろうか。

管理人

自分の写真
調布 有

ブログ コミュニティ

PVアクセスランキング にほんブログ村

ラベル

IT (28) MLB (10) その他 (59) 安全管理 (19) 格差 (19) 株式以外 (7) 時事 (24) 情報リテラシー (34) 生活 (29) 超富裕層 (42) 痛い主張 (14) 投資 (53) 米国 (34) 労働 (14) 屁理屈 (14)

ブログ アーカイブ

QooQ