cpuminer-multiでcryptonightをCPUマイニング(NiceHash)(ubuntu)

コマンド

./cpuminer -a cryptonight  -o stratum+tcp://cryptonight.jp.nicehash.com:3355 -u 39n6CCm5LYfFscSXSje8GxpQHvzZaz499d -p x

ビットコインアドレスは自分のに書き換えてね

Ubuntu 16.04 にGoogle Chromeをインストール

普通に検索してインストーラーから・・・ができない

  1. 依存するパッケージをダウンロード(重要!)
  2. Chromeのインストーラをダウンロード
  3. インストール

依存するパッケージをダウンロード

sudo apt-get install libappindicator1

Chromeのインストーラをダウンロード

https://www.google.co.jp/chrome/browser/desktop/

ダウンロードするときに「プログラムで開く」か「ファイルを保存する」か聞かれるので,「ファイルを保存する」を選び適当な場所に保存します.

インストール

インストーラをダウンロードしたディレクトリに移動して,dpkgでインストールを行います.

sudo dpkg -i ダウンロードしたインストーラ名.deb

これでエラーが出なければインストール完了です.

ターミナルで

google-chrome

と入力すれば起動します.

C++で最頻値の求め方

#include <algorithm>
#include <unordered_map>

// 集計する
std::unordered_map<unsigned int, size_t> hash;
for(const auto &x : data){
    if(hash.find(x) != hash.end()){
        ++hash.at(x);
    }else{
        hash[x] = 1;
    }
}
// 最大値の要素のインデックスを取り出す
// 別途比較関数を書きたくなかったのでラムダ式にした
// (ラムダ式の引数でautoが使えるのはC++14から)
auto max_iterator2 = std::max_element(hash.begin(), hash.end(),
    [](const auto &a, const auto &b) -> bool {
        return (a.second < b.second);
    }
);
int mode = max_iterator2->first;
std::cout << "最頻値:" << mode << std::endl;

Ubuntu を USB メモリから立ち上げて利用するために、Live USB の作り方

LinuxLive USB Creatorをダウンロード

http://www.linuxliveusb.com/en/download

あらかじめ、Ubuntuを入手しておきます。

Ubuntu Desktop 日本語 Remixのダウンロード | Ubuntu Japanese Team

ライブUSB として使うUSB ドライブを、パソコンに接続します。

「LiLi USB Creator.exe」を実行します。

メイン画面が表示されます。

f:id:shikaku:20170626233030p:plain

まず、一番上にある「STEP 1 : USB メモリの選択」欄で、OS のインストール先となる USB ドライブを選択します。

「STEP 2 : ソースの選択」欄にある「ISO / IMG / ZIP」をクリックし、入手しておいた Linux ディストリビューションのイメージファイルを選択します。

Ubuntu を選択した場合「対応リストに無い Linux です」と表示されますが、作業を続けてOK

必要に応じて、OS 上にユーザー保存領域を確保することもできます。

もし、保存領域を確保しておきたい場合は、「STEP3 : 保存領域の設定」欄で確保する領域のサイズを設定しておきます。
(スライダーを左右にドラッグすればよい)

「STEP 4 : オプション」欄で、適宜オプションを設定しておきます。

ここでは、下記のようなオプションを設定することができます。

  • 作成したファイルを隠す※3
  • ( USB ドライブを、)FAT32 でフォーマットする
  • LinuxLive をWindows 上で起動可能にする※4

※3 USB ドライブ上に展開されたファイルを、Windows 上で見えないようにする。
※4 これにチェックを入れると、USB ドライブ内に VirtualBox がインストールされ、その VirtualBox から Linux ディストリビューションを簡単に起動できるようになる。
この機能を使う場合、「作成したファイルを隠す」にはチェックを入れないでおく。

準備が整ったら、「STEP 5」欄にある雷のマークをクリックします。

インストール処理が実行されるので、じっくりと待ちます。
しばらく待ち、「LinuxLive USBメモリの作成が完了しました!」というメッセージが表示されたらライブUSB の完成です。

C++での中央値の求め方

vector使う

要素の値でソートして中央の要素を返す
要素の数が偶数だったら中央2つの平均を返す

loat median(vector<float> v) {
    float size = v.size();
    vector<float> _v(v.size());
    copy(v.begin(), v.end(), back_inserter(_v));
    float tmp;
    for (int i = 0; i < size - 1; i++){
        for (int j = i + 1; j < size; j++) {
            if (_v[i] > _v[j]){
                tmp = _v[i];
                _v[i] = _v[j];
                _v[j] = tmp;
            }
        }
    }
    if (size % 2 == 1) {
        return _v[(size - 1) / 2];
    } else {
        return (_v[(size / 2) - 1] + _v[size / 2]) / 2;
    }
}