Skip to content

Instantly share code, notes, and snippets.

View satoyuichi's full-sized avatar

Sato Yuichi satoyuichi

View GitHub Profile
@satoyuichi
satoyuichi / resolve_if_of_hell.cs
Last active May 31, 2022 04:57
if 文地獄対策
using System;
using System.Collections.Generic;
delegate bool ConditionCheck ();
class CheckAndAction {
public ConditionCheck check { get; set; };
public Action action { get; set; };
}
caList = new List<CheckAndAction> ();
@satoyuichi
satoyuichi / generative_art_with_processing.md
Last active February 24, 2021 07:12
Processing を使ったジェネラティブアート

テーマを決めた上で、以下の条件に従いジェネラティブアートを生成するプログラムを書きなさい。

  • レンダラを P3D にして(size() の第三引数を P3D にする)三次元描画にすること
  • マウスやキーボードの入力を用いること
  • pushMatrix() popMatrix() を用いること
  • texture() を用いること
  • blend() を用いること。その際に複数のブレンドモードを試して比較検討してみること
  • ランダム値やノイズ値を使うこと
@satoyuichi
satoyuichi / try_pull_request.md
Last active September 7, 2020 13:55
Pull Request を試してみよう!

Proclife(https://github.com/satoyuichi/Proclife) の「天の声」を追加して Pull request(PR) を投げてみましょう。

具体的には proclife.js の配列 ONE_POINT_ADVICES に要素を追加してください。

PR の投げ方は N 予備校の「GitHub でソーシャルコーディング」(https://www.nnn.ed.nico/courses/668/chapters/9515) を参考にしてみましょう。

なお base ブランチを develop ブランチとしてください。

レビュー結果に問題なければ取り込まれて(レビュー依頼は Slack に投げてください)、以下の URL から確認することができます。

ls モドキの作成

ls クローンのプログラム lsorg を作成してください。オプションの動作までをコピーする必要はなく、実行したディレクトリにあるファイルを列挙するだけで構いません。出力フォーマットも任意とします。 ただし、 ls | less を実行した時のように、 lsorg | less とすると、1行ごとに列挙される動作にしてください。

目的

  • システムコールの使い方に慣れる
  • 標準出力先に応じた処理の切り替えを学ぶ
// uniform vec3 iResolution;
// uniform float iTime;
// uniform float iTimeDelta;
// uniform float iFrame;
// uniform float iChannelTime[4];
// uniform vec4 iMouse;
// uniform vec4 iDate;
// uniform float iSampleRate;
// uniform vec3 iChannelResolution[4];
// uniform samplerXX iChanneli;
#include <algorithm> // https://cpprefjp.github.io/reference/algorithm.html
#include <ios> // https://cpprefjp.github.io/reference/ios.html
#include <iostream> // https://cpprefjp.github.io/reference/iostream.html
#include <map> // https://cpprefjp.github.io/reference/map.html
#include <set>
#include <string> // https://cpprefjp.github.io/reference/string/basic_string/find.html
#include <vector> // https://cpprefjp.github.io/reference/vector/vector.html
#include <utility> // https://cpprefjp.github.io/reference/utility.html
#include <climits>
@satoyuichi
satoyuichi / k_and_r_pass.md
Last active June 16, 2020 05:19
K&R スキップしても良い問題

 以下の問題は情報科学の知識や考察が必要であったりと、 C 言語の問題を解くという以上の内容になり時間がかかるため、とりあえずスキップしても良いと思われる問題です。とはいえ、重要でないということではないので、じっくり取り組める時に挑戦すると良いでしょう。

  • 1-21
  • 1-24
  • 2-9
  • 3-1
  • 3-4
  • 4-5
  • 4-7
  • 4-8

bit 演算の練習問題

  1. 変数 x の任意の n ビット目を立てた値を返す関数 setbit( x, n ) を書きなさい。
  2. 変数 x の任意の n ビット目を下ろした値を返す関数 unsetbit( x, n ) を書きなさい。
  3. 変数 x の任意の下位 n ビットの値を返す関数 getlowbits( x, n ) を書きなさい。
  4. 8bit 変数のみを使って 1024bit のフラグを管理し n ビット目を操作する関数 setflag( n )/unsetflag( n )/getflag( n ) を書きなさい。
  5. x の全ビットを反転した値を返す invertAllBits( x ) を書きなさい。
  6. x の 0 ビット目から n ビットを反転する関数 invertNBits( x, n ) を書きなさい。
  7. x の中で何 bit 立っているかを数える関数 countHighBits( x ) を書きなさい。
  8. x の bit の並び順を反転する関数 reverseBits( x ) を書きなさい。
@satoyuichi
satoyuichi / encrypt_application.md
Created September 26, 2019 02:54
暗号解読の応用

暗号解読の応用

次の画像から平文を取り出しなさい。

目的

  • ステガノグラフィの復号を体験する

問1. 復号と鍵

  • 取り出した平文と鍵を答えなさい
@satoyuichi
satoyuichi / basic_encrypto.md
Last active September 25, 2019 00:12
暗号解読の基礎

暗号解読の基礎

次のテキストは平アルファベットを並べ替えた暗号アルファベットによって暗号化されています。元のテキストに復号してください。(必ずしもプログラミングを用いなくても良い)

dzj enagds pvgc pgtf cvyvaymye vye uzadf xgds cvyvagwya pvaff czdc. zd pvf pvzncyde yde bgacp dgsvp, jvfd cvf vye fdefe pvf pyrf zb ty'yanb, cvf azcf yde xgccfe pvf saznde ufbzaf vgt, cywgds: 'safyp xgds, bza y pvzncyde yde zdf dgsvpc g vylf uffd afizndpgds pz wzn pvf byurfc zb oycp ysfc yde pvf rfsfdec zb ydigfdp xgdsc. tyw g tyxf cz uzre yc pz iaylf y bylzna zb wzna tyqfcpw?'

fogrzsnf, pyrfc bazt pvf pvzncyde yde zdf dgsvpc

ヒント: 換字式暗号、頻度分析