事象の水平線

個人的ブックマーク代わりなメモ書きブログ。 地球は丸いよ。↓このへん。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop
最近javaばっか触ってます。
組み合わせ作りたいなーと思った時に、なんかしらんけどいつぞや作ったコードがあったので乗っけておこう。すぐ何処に書いたか忘れちゃうから。
まーアルゴリズムなことなんでjava関係ないですが。
なんかスマートじゃない気がソコハカトナクするんですけど・・・
深さが決まってる時は、for(int i=0; i<ilength; i++){ for(int j=i+1; j<jlength; j++){~~とかやっちゃうんだけど、引数で任意にしたかったので再帰です。
数学とか忘れました。
重複を許さない組み合わせです。
どうやって思いついたんだかわからんけど;;
staticとか当然関係ないです。HashSet使ったらよかったんちゃう?


private static void testCombinationReculsion(){
ArrayList<ArrayList<Integer>> resultsList = new ArrayList<>();
ArrayList<Integer> seeds = new ArrayList<>();
seeds.add(1);
seeds.add(2);
seeds.add(3);
seeds.add(4);
seeds.add(5);
seeds.add(6);
seeds.add(7);
seeds.add(8);
seeds.add(9);

//使い方
int m = 3;
combination(resultsList, new ArrayList<Integer>(), seeds, 0, m-1, 0);

for(ArrayList<Integer> menbers : resultsList){
for(int menber : menbers){
System.out.print(menber + ",");
}
System.out.println();
}
}

private static void combination(ArrayList<ArrayList<Integer>> resultList, ArrayList<Integer> combList, ArrayList<Integer> seeds, int nest, int depth, int startI){
ArrayList<Integer> tempList = new ArrayList<>(combList);
for(int i=startI; i<seeds.size()-depth+startI; i++){
if(i>=seeds.size()){continue;}
combList = new ArrayList<>(tempList);
combList.add(seeds.get(i));
if(nest < depth){
combination(resultList, combList, seeds, nest+1, depth, i+1);
}else if(nest >= depth){
resultList.add(combList);
}
}
}


前々から思ってたけど、syntaxhighlighterいれたいなー。どうやるんだろ。
めんどいからいいや。

スポンサーサイト

PageTop
Mailbox Alert で、着信音をコントロールしたら、今度はタスクトレイのノーティファイアイコンが気になりだした。

今ではwindowsしか使っていない自分ですが、じつはマック使用暦のほうがまだ長いという事もあり、タスクバー自体は下でなく上で、しかもマウスオーバー以外では隠す設定なのでそれほど目にはつかないものの、やはりたまに目に付くと気になってしまう。
本当はこれもフォルダ毎に表示非表示が選べるといいのだけれど、どうもむりっぽい。

ただ、消すことだけはできるっぽいので、メモ書き。

ツール>オプション>詳細>一般>設定エディタ (FireFoxで言うところの about:config)

mail.biff.show_tray_iconをfales だそうだ。

ただそれだけ。

PageTop
今更発見した便利アドイン Mailbox Alert

サンダーバードはスパム判定はそこそこいけてるけど、スパムの時も“You gotta mail”(AOLから拝借)がいちいち鳴るのが気になっていたが、これで解決。

アカウント毎かと思ったら、フォルダごとなのですこぶる良い。
なんせ、メールボックスには、受信トレイ以外に(今数えたら)30以上のフォルダを展開してフィルタで仕分けをしているので、これはとても便利。
結構どうでもいいようなニュースメール類は音を鳴らさず、重要なフォルダは特別な音を鳴らせるので、便利です。

ただそれだけ。

PageTop
myYahooが新しくなったら、Adblockで右上の広告が消えなくなった。

それ以外にもGreaceMonkeyでmyYahoo上にいくつかHTMLを書き込んでいたがそれも効かなくなった。(cssが変わった)
で、GreaceMonkeyをいじれば恐らく解決できると思われるが、正直javascriptの単語がわからん上に、使い方なんぞとうの昔に忘れているのでどうしようかと悩んでいたら、いいものが見つかった。

FireFoxのアドオン『stylish』 → URL:https://addons.mozilla.jp/firefox/details/2108

まず、myYahooを開いた状態で、

1.インストールするとグリースモンキーよろしく右下にアイコンが表示されるので、そこをクリック

2.「新しいスタイルを書く」 > 「yahoo.co.jp 専用...」 をクリック

3.
 @-moz-document domain("yahoo.co.jp") {
#myyads{ display: none; }
}

といった形にする。

名前を適当に入れて保存でOK (タグってよくわかりません。)

ちなみに、ご推察のとおり
・#myyadsが広告のcssのid
・display:none;はcssの意味のまんま非表示
cssそのままなのがGood さらに「このサイト用スタイルを探す」をクリックすると誰かが作ったコードを借用できる

同様にして、テレビ番組表としてよく使うtv.gooの上のほうに表示されているごてごてとした表示も、今までグリースモンキーで消していたのを「stylish」に移行して、グリースモンキーとおさらば。

tv.goo → URL:http://tv.goo.ne.jp/contents/epg/008/VHF_1/today_0024/index.html
上記アドレスは新聞のラテ欄のように本日の24時間分の地上波のアドレス これをブックマークしてます

これに対しては、
@-moz-document domain("tv.goo.ne.jp") {
#header{ display: none; }
#middle{ display: none; }

}

としました。

PageTop
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1 {
    class Program {
        /// アプリケーションのメイン エントリ ポイントです。
        [STAThread]
        static void Main() {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
    public class Form1 : Form {
        /// 必要なデザイナ変数です。
        private System.ComponentModel.IContainer components = null;


        /// 使用中のリソースをすべてクリーンアップします。
        protected override void Dispose(bool disposing) {
            if(disposing && (components != null)) {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows フォーム デザイナで生成されたコード

        /// デザイナ サポートに必要なメソッドです。このメソッドの内容を
        /// コード エディタで変更しないでください。
        private void InitializeComponent() {
            this.components = new System.ComponentModel.Container();
            this.timer1 = new System.Windows.Forms.Timer(this.components);
            this.label1 = new System.Windows.Forms.Label();
            this.button1 = new System.Windows.Forms.Button();
            this.SuspendLayout();
            //
            // timer1
            //
            this.timer1.Enabled = true;
            this.timer1.Interval = 400;
            this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
            //
            // label1
            //
            this.label1.BackColor = System.Drawing.Color.Black;
            this.label1.ForeColor = System.Drawing.Color.Red;
            this.label1.Location = new System.Drawing.Point(100, 140);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(129, 68);
            this.label1.TabIndex = 0;
            this.label1.Text = "label1";
            //
            // button1
            //
            this.button1.Location = new System.Drawing.Point(71, 61);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(75, 23);
            this.button1.TabIndex = 1;
            this.button1.Text = "button1";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);
            //
            // Form1
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(292, 273);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.label1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.Timer timer1;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Button button1;

        public Form1() {
            InitializeComponent();
        }
        private int i;
        private void timer1_Tick(object sender, EventArgs e) {
            if(i % 2 == 0) { colorOff(); }
            else { colorOn(); }
            label1.Text = i.ToString();
            if(i > 4) timer1.Stop();
            Invalidate();
            i++;
        }

        private void button1_Click(object sender, EventArgs e) {
            i = 0;
            timer1.Start();
        }

        private void colorOn() {
            this.label1.BackColor = System.Drawing.Color.Black;
            this.label1.ForeColor = System.Drawing.Color.Red;
        }
        private void colorOff() {
            this.label1.BackColor = System.Drawing.Color.Red;
            this.label1.ForeColor = System.Drawing.Color.Black;
        }
    }
}

PageTop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。