1
/
5

STYLYからの挑戦状 Vol.5 世界はそれを奇問と呼ぶんだぜ

お待たせしました、約1年ぶりのSTYLYからの挑戦状です。相変わらず奇問好きのSTYLY エンジニアリングマネージャーからの新たな出題。楽しんで解いてください!

下記から2問以上正解された方は、書類選考なしで必ず面談をさせていただきます。

問1 究極の疑問の答え

ある二次元の座標系において
一次方程式

において、2個の点が分かると係数a,bが一意に特定可能です。

二次方程式

においては、3個の点が分かると係数a,b,cが一意に特定可能です。逆に、2個以下では係数a,b,cを特定することは出来ません。この性質を利用すると、二次方程式の定数項cを暗号文として、3つの点の値が分からないと復元不能な暗号文の生成が可能です。

ここで、

(1, 56)
(2, 90)
(4, 266)
(7, 980)
(14, 6426)

という5つの点があります。これは4つの点が分かると解読可能な暗号文です。暗号文を解読してください。
また、4点の組み合わせにより、復号された数字が変わらないことをプログラムで示してください。

問2 同値?

以下は配列にランダムな数字で設定し、その実行時間を計測するプログラムである。

#include<iostream>
#include<array>
#include<random>
#include<chrono>


using namespace std;


int main(){
const size_t width = 100000;
const size_t height = 10000;
static array<array<int, width>, height> a;


chrono::system_clock::time_point start, end;


random_device rnd;
mt19937 mt(rnd());


start = std::chrono::system_clock::now();
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
a[i][j] = mt();
}
}
end = std::chrono::system_clock::now();
cout << "pattern1:" << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "[ms]" << endl;


start = std::chrono::system_clock::now();
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
a[j][i] = mt();
}
}
end = std::chrono::system_clock::now();
cout << "pattern2:" << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "[ms]" << endl;


return 0;
}

実行すると

$ ./a.out
pattern1:21545[ms]
pattern2:30326[ms]

という結果を得た。
pattern1とpattern2では、実行時間に差がある。その理由を答えてください。

問3 誰がために鐘は鳴る 

以下のバイナリファイルを実行してください。
また、このファイルをどのように解析し、何であるかを解説し、実行したスクリーンショットを添付してください。

https://drive.google.com/file/d/1_EBmrnAMmH4n5Nti2hoDznHGg817kRKp/view?usp=drive_link

問4 GRAND SLAM

以下の文字列を出力するプログラムを120Byte以内で書いてください。
また、どのように考えたのかを記述してください。

出力:

👆👉👇👈

👆🏻👉🏻👇🏻👈🏻

👆🏼👉🏼👇🏼👈🏼

👆🏽👉🏽👇🏽👈🏽

👆🏾👉🏾👇🏾👈🏾

👆🏿👉🏿👇🏿👈🏿

リダイレクトでファイルへ出力し、エディタで閲覧したときの表示:



回答はこちらから

https://docs.google.com/forms/d/e/1FAIpQLSc3yX7hxTrR1BeH0YZyBoGjZfQUuLIlBfrRj71dqp3lLe8nJg/viewform?usp=sf_link




株式会社STYLY's job postings
4 Likes
4 Likes

Weekly ranking

Show other rankings