1 名前:デフォルトの名無しさん (ワッチョイ 5394-4hBO) mailto:sage [2016/12/27(火) 02:07:41.47 ID:HrGPkQcW0.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part125 echo.2ch.net/test/read.cgi/tech/1475930006/ ■関連スレ C#, C♯, C#相談室 Part91 echo.2ch.net/test/read.cgi/tech/1467211515/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configure
577 名前:デフォルトの名無しさん (ブーイモ MM52-CvLw) mailto:sage [2017/02/13(月) 07:55:48.89 ID:K3AR3nw+M.net] 実際AWSとか経験してしまうともう全部これでいいだろと思うようになるよ うちの会社はマジでインフラビジネス崩壊の危機に直面してる
578 名前:デフォルトの名無しさん (ワッチョイ df09-DR2M) mailto:sage [2017/02/13(月) 09:39:21.50 ID:5AbbZsGI0.net] ちょっと会話が成り立ってないみたいなんですけど これだから池沼って言われるんではないですかねww
579 名前:デフォルトの名無しさん (ワッチョイ 93bb-cGUq) mailto:sage [2017/02/13(月) 10:49:34.63 ID:6O142uRC0.net] ここでフックやプロキシや難読化の質問する時点で 遠隔ウイルス片山と同じ悪いこと考えてるんだから真面目にレスする必要もあるまい。
580 名前:デフォルトの名無しさん (オッペケ Srf7-S/g0) mailto:sage [2017/02/13(月) 12:20:44.16 ID:axxRkyStr.net] 難読化質問した者だけど、悪いことする人だけが難読化するって意識なの?
581 名前:デフォルトの名無しさん (ワッチョイ 27c0-CIv3) mailto:sage [2017/02/13(月) 12:22:21.24 ID:gHEQ/2iY0.net] 難読化は悪いことする人への対策だしな
582 名前:デフォルトの名無しさん (ワッチョイ 7bdc-CvLw) mailto:sage [2017/02/13(月) 12:33:28.50 ID:u3X6aEIq0.net] 問題は誰が悪いことするのかでしょ 特定の客にしかバイナリを配らないんなら客からの要求がない限りは難読化なんか要らない 客にも漏らせない特殊な技術があるとしたら、それは難読化云々ではなく契約の問題 客がそれを破ったら当然訴えりゃいい
583 名前:デフォルトの名無しさん (スプッッ Sd72-jFC1) mailto:sage [2017/02/13(月) 12:38:33.29 ID:bVT/P/ned.net] 悪い人が本気出せば難読化したところで解読できますし 技術に疎い人間を納得させるための方法としては有効だとは思うけど
584 名前:デフォルトの名無しさん (オッペケ Srf7-S/g0) mailto:sage [2017/02/13(月) 12:42:05.58 ID:axxRkyStr.net] 一般人販売するから簡単にクラックされるのもなあ ライセンス関係のところやられると、アクティベーションしなくても使えるようになっちゃうし
585 名前:デフォルトの名無しさん (オッペケ Srf7-S/g0) mailto:sage [2017/02/13(月) 12:43:19.88 ID:axxRkyStr.net] まあwindowsやフォトショでさえクラックされてるしな 底辺の俺(ら)が何をやっても無駄か笑
586 名前:デフォルトの名無しさん (アウアウオー Sa8a-BhAG) mailto:sage [2017/02/13(月) 12:44:03.70 ID:ubVZSqMka.net] 金庫にお金入れたところで盗まれるから入れずに置いといて問題ない 金庫なんて盗みに疎い人間を納得させるためだけのもんだ って言ってるようなもんだな
587 名前:デフォルトの名無しさん (ブーイモ MM52-CvLw) mailto:sage [2017/02/13(月) 12:48:58.22 ID:K3AR3nw+M.net] >>575 金庫は言い過ぎ エロ本をベッドの上に堂々と置くかベッドの下に隠すか、くらいの違い
588 名前:デフォルトの名無しさん (アウアウウー Sab3-cZcy) mailto:sage [2017/02/13(月) 12:53:33.66 ID:1vnuYgLka.net] >>569 それはないけど、ちょっと自意識過剰な人なのかなって疑いは正直持つねw そんな高度なプロプラ持ってる人はこんなところで質問しないと思うし もちろん好意的に考えれば、>>571 が言うような事情を抱えた零細企業の従業員って 可能性もありうるけど 俺も零細にいた時、インストールシールドとか買ってもらえなくてVSのセットアッププロジェクトに 力技でシリアルキーの検証機能を組み込んだことあるよw
589 名前:デフォルトの名無しさん (スププ Sd52-Znb2) mailto:sage [2017/02/13(月) 14:21:46.45 ID:Xm/Iv1XXd.net] >>566 この人しつこい
590 名前:デフォルトの名無しさん (オッペケ Srf7-S/g0) mailto:sage [2017/02/13(月) 14:50:05.75 ID:axxRkyStr.net] >>577 ちょっとスレの目的とは外れるからこの件をずっと言うのもあれだけど 孤独な自営なので取り引き先に納品とかじゃないんだ あと本業はプログラマじゃないのでここからは出られないと思う
591 名前:デフォルトの名無しさん (ワッチョイ 124c-0xw5) mailto:sage [2017/02/13(月) 16:12:42.48 ID:LAv/WUos0.net] >>577 インストールシールドで組んでも同じ事。 照合用のDLL内部に細工組まないと、ダンプで読めちゃう。
592 名前:デフォルトの名無しさん (アウアウオー Sa8a-BhAG) mailto:sage [2017/02/13(月) 16:42:06.47 ID:ubVZSqMka.net] >>580 照合用のDLL内部に細工組み込んでも同じ事。少しいじったら使えちゃう 難読化もシリアルは当たり前だが、クラウドでさえも盗人を防ぐことはできないんだよ 防ぐならバイナリ配布やサービス提供をやめるしかない
593 名前:デフォルトの名無しさん (アウアウウー Sab3-cZcy) mailto:sage [2017/02/13(月) 17:40:39.81 ID:1vnuYgLka.net] >>580 そういう話じゃなくて、MSが提供してるセットアッププロジェクトには シリアルナンバーの類を検証する機能がそもそも存在しないのよ クラック対策とかそれ以前の話
594 名前:デフォルトの名無しさん (アウアウカー Sa1f-KlhN) mailto:sage [2017/02/13(月) 17:45:28.33 ID:5u9YjgZYa.net] 難読化が必要な人ってどういう人か?って話から零細と推測して、似た境遇だったことがある人が感想を述べただけでしょ。 読めちゃうかどうかはそこではどうでも良いだろ。 人の言いたいことを読み取れない奴が多いな。
595 名前:デフォルトの名無しさん (ワッチョイ 124c-0xw5) mailto:sage [2017/02/13(月) 18:19:03.34 ID:LAv/WUos0.net] >>581 そういう事はもちろん承知。 いくら照合テーブルを複数用意しても、ジャンプ命令で抜けれたらどうもこうもない。 で、年末に照合用サーバーを納めたとこよ
596 名前:デフォルトの名無しさん (ワッチョイ 3e7b-Ol/0) mailto:sage [2017/02/13(月) 23:54:38.62 ID:64u1b7/j0.net] >>584 サーバ見に行くところにパッチ当てて、 強制的にtrue返すようにしておいたよ
597 名前:デフォルトの名無しさん (ワッチョイ 9341-Avde) [2017/02/14(火) 07:05:19.58 ID:1IUMjXL00.net] 隠しメッセージを置いておくくらいはしたいもんだ このメッセージを見たものはハゲます、みたいな
598 名前:デフォルトの名無しさん (ワッチョイ 2790-jWyY) mailto:sage [2017/02/14(火) 09:44:42.37 ID:Nim8Pln30.net] 数独を解くアプリを作っているのですが、上級問題になると解けない問題があります フローはこんな感じなんですが何が足りないんでしょうか? まず不明な数を0と置きます、該当マスの縦横、3x3のブロック内を検索し、見つけた数「n」とし9個の配列を持つbool型のflag[n-1]をtrueにして もしbool型変数flagのfalseが一つしかない場合、絞り込めたと判断しflagのfalseの位置を該当のマスに代入します これをループさせて、すべての配列で0がない場合、一周して一度も代入できていない場合を抜ける条件としています ソースも貼っておきます。下側は解けるのですが上側は解けないです https://ideone.com/uwvM7n
599 名前:デフォルトの名無しさん (ワッチョイ 93bb-cGUq) mailto:sage [2017/02/14(火) 10:29:46.12 ID:dpHbb6/Q0.net] wikip見てルールは軽く理解したが、それで解けるわけないだろw 関係する組み合わせもすべてチェックしろw
600 名前:デフォルトの名無しさん (ワッチョイ 1258-3CwI) mailto:sage [2017/02/14(火) 11:30:18.74 ID:8kq18t1J0.net] 音声をSoundPlaerで再生しようとするプログラムを作っています 単純にプロジェクト作成で作られるForm1に音声再生用クラス(SoundPlayer)を用意 別スレッドで再生する関数(SoundPlayer.Play)を作って音声再生を実施する形にしてます そこで実体化とかで親フォーム(Form1)を指定する形にして再生終了したときに form1.Invork((MethodInvoker)delegate(){form1.endPlayEvent()}); で関数呼び出すと終了時のForm1のボタンとかが操作ができるのはわかります しかし別プログラムに再生用クラスを持っていくときに できるだけこのクラスを書き換えしたくないので Formに通知してイベントを起動する形とかできるのでしょうか?
601 名前:デフォルトの名無しさん (ワッチョイ 124c-YCZx) mailto:sage [2017/02/14(火) 11:32:16.56 ID:CQeCieXf0.net] >>589 もうちょい詳しく。 プロセス間通信みたいなもん?
602 名前:デフォルトの名無しさん (アウアウウー Sab3-cZcy) mailto:sage [2017/02/14(火) 11:38:24.01 ID:PdY4D7f4a.net] そんな難しい話じゃなく、恐らくFormに処理を書いちゃってるVBerなノリの人なんでしょう
603 名前:デフォルトの名無しさん (ワッチョイ 1258-3CwI) mailto:sage [2017/02/14(火) 11:49:51.24 ID:8kq18t1J0.net] >>590 VBerかはわからないけどこれから色々書いていって学ばないと行けないのは分かってる とりあえずやってみようとしているのは Form1のボタンクリック(ボタンの無効化) ↓ 音声データを作って、再生クラスへ投げる ↓ 別スレッドで処理開始(await Task.Run()=>を使用) ↓ SoundPlayer.PlaySync()で再生 ↓ 再生終了したときにForm1に終了を通知 ↓ 通知を受けたForm1が再生終了の処理(ボタンの有効化) 今回はボタンの無効化だけど、他の処理もやることになるかもと思って聞いてみた
604 名前:デフォルトの名無しさん (ワッチョイ 124c-YCZx) mailto:sage [2017/02/14(火) 11:58:52.16 ID:CQeCieXf0.net] 何か、Programに静的メンバーでその再生クラスを入れればいいんじゃね とエスパー?
605 名前:デフォルトの名無しさん (ワッチョイ 3223-ENO3) mailto:sage [2017/02/14(火) 12:12:01.84 ID:zkaGzzQt0.net] >>592 要するにコントロールのスレッドセーフな呼び出しでしょ?外部からInvokeするより、やはりTaskを返すべきじゃないかなぁ TaskCompletionSourceで実体のない任意に状態を設定できるTaskも作れる、あとはForm側でawaitするなり TaskScheduler.FromCurrentSynchronizationContext()を与えてContinueWithしておくなり…
606 名前:デフォルトの名無しさん (アウアウウー Sab3-cZcy) mailto:sage [2017/02/14(火) 12:13:11.38 ID:PdY4D7f4a.net] >>592 真面目な話、何が聞きたいのかちゃんと他人に理解できるように書かないと 誰も回答しようがないよ。 悪いけど何がしたくて何を質問してるのかさっぱりわからない
607 名前:デフォルトの名無しさん (ワッチョイ 1258-3CwI) mailto:sage [2017/02/14(火) 12:18:48.12 ID:8kq18t1J0.net] >>593-595 わけわからない質問してごめん 色々ゴチャゴチャになってて考えとかが纏まってない気がしてきた ちょっと休憩とかして、頭をクリアにしてから書いて貰ったことを調べてみる
608 名前:デフォルトの名無しさん (ワッチョイ 2790-jWyY) mailto:sage [2017/02/14(火) 12:37:48.40 ID:Nim8Pln30.net] >>588 すいません、関係する組み合わせとはなんですか?
609 名前:デフォルトの名無しさん (ワッチョイ df6d-DR2M) mailto:sage [2017/02/14(火) 12:55:23.20 ID:XyImroZT0.net] 初心者は大人しくバックトラックで解いた方がいいんでないの
610 名前:デフォルトの名無しさん (ワッチョイ df6d-DR2M) mailto:sage [2017/02/14(火) 12:58:55.86 ID:XyImroZT0.net] 何らかの事情で劇的な速度が欲しいならSATソルバー使う方が速い
611 名前:デフォルトの名無しさん (ワッチョイ 93bb-cGUq) mailto:sage [2017/02/14(火) 13:09:33.16 ID:dpHbb6/Q0.net] >>597 9*(決まってない空白数)だけパターン数があると考えてすべて整合性チェックすればいいんだよ。 あとは自由に最適化しろ。
612 名前:デフォルトの名無しさん (ワッチョイ 635b-t8AD) mailto:sage [2017/02/14(火) 17:38:40.59 ID:BsjgcFem0.net] 複数選択可のListBoxのSelectedIndexChangedイベントにおいて、 今まさに選択されたアイテムのindex (VBのListBox.ListIndexのような感じです)を得るにはどうすれば良いですか。
613 名前:デフォルトの名無しさん (ラクッペ MMc7-iIq0) mailto:sage [2017/02/14(火) 18:37:27.66 ID:e3yTVnI+M.net] formアプリとただのASP.NETと VBはもうサポートしなくて良いよね 分散しまくってるから リソース集中して欲しい
614 名前:デフォルトの名無しさん (アウアウウー Sab3-cZcy) mailto:sage [2017/02/14(火) 18:42:24.50 ID:PdY4D7f4a.net] >>601 そのイベントって選択解除や選択されている項目を削除した時も発生するし、 ListBoxってShiftキー押しながらクリックで複数項目を選択したり解除したりできた気が
615 名前:デフォルトの名無しさん (ワッチョイ 635b-t8AD) mailto:sage [2017/02/14(火) 20:04:39.55 ID:BsjgcFem0.net] >>603 言い忘れていましたが、C# 2.0の話です。 ListBoxのプロパティSelectionModeをMultiSimple等にすると、複数選択できるようになります。 何をやりたいかというと、1つのListBoxで項目を6個以上選択できない(5個までなら選択できる)ようにしたいのです。
616 名前:デフォルトの名無しさん (ワッチョイ 7642-LB0c) mailto:sage [2017/02/14(火) 20:29:01.97 ID:8xZyzg4v0.net] >>587 C#ってかアルゴリズムだと思うけど9×9の数独なら力技でもそんな時間かからんぞ 空きマスに1置けるか?置けないなら2置けるか? ってチェックしていって置ける数字がでたら次の空きマスに移動 移動した先で置ける数字がなくなったら1個戻って数字を変える みたいな処理を再起で組めばいける この手法だと回答が複数ある時、あるいはパズルとして成立しない時(途中で手詰まりになる時)でも無理やり回答を出してしまうっていう問題があるけど
617 名前:デフォルトの名無しさん (ワッチョイ 2790-jWyY) mailto:sage [2017/02/14(火) 22:01:03.75 ID:Nim8Pln30.net] >>605 空きマスに1置けるか?置けないなら2置けるか…ってやっていくのはわかるんですが 自分がやっている縦横同ブロック検索しておける数字が一つに絞り込めた場合、代入するようにしてるんですがこれ違うんですか?
618 名前:デフォルトの名無しさん (ブーイモ MM4b-ZWt2) mailto:sage [2017/02/14(火) 22:09:41.60 ID:mO6RmRZWM.net] >>606 数独を解いたことあれば、それだけではクリア出来ないのは良くあることなんだけど……
619 名前:デフォルトの名無しさん (ワッチョイ 7642-LB0c) mailto:sage [2017/02/14(火) 22:11:49.93 ID:8xZyzg4v0.net] >>606 一つに絞り込めなくても現時点で置けるならとりあえず置いて次に行くの 順次進めて行ってどこかのマスで何の数字も置けないようになってしまったら今まで置いてきた数字に何処かに誤りがあったってことだから戻って別候補にするって感じ マスに入る数字を一つに絞り込んで進めていくやり方は数独のテクニックを理解してそれをプログラミングしていく必要がある 上級問題は当然そのテクニックも難解になるから上下左右ブロックを見るだけ程度のテクニックだけでは解ききれない 問題制作側で回答チェック等まで踏まえたツールなんかを作成するなら当然このあたりまで考慮して製作する必要があるけど ひとまず回答だけ求めるなら前半に書いた手法で十分だよ
620 名前:デフォルトの名無しさん (ブーイモ MM4b-ZWt2) mailto:sage [2017/02/14(火) 22:19:23.18 ID:mO6RmRZWM.net] あれ?そもそも最上段の左から2番目埋まってないな。 やろうとしてるロジックも未完成なんじゃね?
621 名前:デフォルトの名無しさん (ワッチョイ 7230-VyiL) mailto:sage [2017/02/14(火) 22:25:20.31 ID:5IUCJa7e0.net] もう諦めてsquatでもしてこいよ
622 名前:デフォルトの名無しさん (ワッチョイ 2790-jWyY) mailto:sage [2017/02/14(火) 22:40:12.49 ID:Nim8Pln30.net] >>608 再起がすごい苦手なんですが・・・どこまで潜っていくのかわからないですし どう抜ければどう書けばいいのかもわかりません
623 名前:デフォルトの名無しさん (アウアウウー Sab3-cZcy) mailto:sage [2017/02/14(火) 22:45:26.95 ID:PdY4D7f4a.net] >>604 完璧じゃないけどこの辺で妥協? IEnumerable<object> mPrevSelectedItems = new object[0]; private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { var selectedItems = listBox1.SelectedItems.OfType<object>(); var removeCount = selectedItems.Count() - 5; if (removeCount > 0) { var ex = selectedItems.Except(mPrevSelectedItems); var skipCount = ex.Count() - removeCount; if(skipCount >-1) { var items = ex.Skip(skipCount); Array.ForEach(items.ToArray(), x => listBox1.SelectedItems.Remove(x)); } } mPrevSelectedItems = selectedItems.ToArray(); } 思ったより面倒くさいなあ
624 名前:デフォルトの名無しさん (ワッチョイ 7642-LB0c) mailto:sage [2017/02/14(火) 23:13:26.80 ID:8xZyzg4v0.net] >>611 別に実装は再起じゃなくても問題ないよ アルゴリズムが理解できれば普通にループと分岐だけで組める
625 名前:デフォルトの名無しさん (ワッチョイ 7bdc-3OfB) mailto:sage [2017/02/14(火) 23:35:48.88 ID:+J5Ev49B0.net] >>611 こういう問題は手続きじゃなくてトップダウンで関数型的に考えると機械的に解ける 解 = 数独を解く(初期状態, []).FirstOrDefault(); 数独を解く = (状態, 探索済) => 解けている(状態) ? [状態] : 次の候補(状態, 探索済).SelectMany(候補 => 数独を解く(候補, 探索済 + 状態)).First(); 次の候補 = (状態, 探索済) => 数字を適当に1つ置いてみるときの全ての置き方(状態).Where(状態 => 矛盾してない(状態) && 探索済.含まない(状態)); 数字を適当に1つ置いてみるときの全ての置き方 = 状態 => … こんな感じで大雑把なところから細部を詰めていくの 具体的な動作をイメージしづらいかもしれないけど、結局やってることは ID: 8xZyzg4v0 と同じ
626 名前:デフォルトの名無しさん (ワントンキン MM62-S0So) mailto:sage [2017/02/14(火) 23:40:20.02 ID:UB3JXf9tM.net] 数独はSQLで解くのがトレンド
627 名前:デフォルトの名無しさん (ワッチョイ 323c-zlRv) mailto:sage [2017/02/14(火) 23:46:21.93 ID:3qnQ1Gfx0.net] >>606 ここら辺を参考にしてみるとか https://www.slideshare.net/mobile/atmarksharp/ss-45348313
628 名前:デフォルトの名無しさん (ワッチョイ 93bb-cGUq) mailto:sage [2017/02/15(水) 06:53:14.94 ID:apHpeiac0.net] 自分の頭で解けない奴には、その解法を仕様化できるわけがない。
629 名前:デフォルトの名無しさん (スフッ Sd52-AyEu) mailto:sage [2017/02/15(水) 08:38:52.62 ID:4NekN3gFd.net] 9(縦)x9(横)x9(ありえる数字)のboolの配列持って、 まず既知のセルの8個の数字を消しこんで、 その次に、全セルを順番に縦、横、3x3のブロックでそれぞれ、あり得ない数字(≒縦、横、ブロック内の、ひとつだけになっているセル)を消しこんでいって、一周しても何も消せなくなるまで回って、 その後、ありえる数字の組み合わせの総当りにした方が多分良い。 ありえる数字の組み合わせを考えるから辛い。 あり得ない数字は別のセルから導出できるんだし。
630 名前:デフォルトの名無しさん (ワッチョイ 7642-LB0c) mailto:sage [2017/02/15(水) 08:55:15.39 ID:yJTbA8M80.net] >>618 処理が前後半の2段階になってるけど質問者は前半だけじゃ解けない問題に直面して困ってる&後半だけで解ける って状態なんだからひとまず前半は要らない 後半作って上手く行ったなら処理速度向上とか考慮して前半みたいな処理を追加すればいい
631 名前:600 (ワッチョイ 635b-t8AD) mailto:sage [2017/02/15(水) 09:42:28.85 ID:J55wC/o80.net] >>612 うまくいきました。やはり選択されたアイテムを覚えさせておく方法が良いようですね。 どうもありがとうございました。
632 名前:デフォルトの名無しさん (ワッチョイ df07-VyiL) mailto:sage [2017/02/15(水) 12:45:30.38 ID:uvXQ5Mwv0.net] 数独ソルバー程度で悩む奴もいるんだなあ 俺は厨房のころ作ったけど
633 名前:デフォルトの名無しさん (スフッ Sd52-AyEu) mailto:sage [2017/02/15(水) 13:17:31.37 ID:4NekN3gFd.net] >>619 うーん、総当りって現実的な時間には終わらんと思うが。
634 名前:デフォルトの名無しさん (ワッチョイ df6a-VyiL) mailto:sage [2017/02/15(水) 13:59:57.66 ID:1Sp8YgZp0.net] いまPythonで書いてみたけど5年前のMacMiniでも数秒で終わる
635 名前:デフォルトの名無しさん (ワッチョイ df6a-VyiL) mailto:sage [2017/02/15(水) 14:06:17.53 ID:1Sp8YgZp0.net] ideoneでも余裕で動いた https://ideone.com/TSJo4P
636 名前:デフォルトの名無しさん (ワッチョイ 7642-LB0c) mailto:sage [2017/02/15(水) 14:39:28.56 ID:yJTbA8M80.net] >>622 作ったことないんでしょ 9✕9なんて一瞬、処理途中を描画しながらで数秒レベル 組み合わせは最大81の9乗あるから仮数字を全部入れてチェックなんて手法取ったらそら終わらん。 順番に仮置きして矛盾が発生した場合戻るってすれば、いわゆる枝切りみたいなのがどんどん発生するからすぐ終わる 計算量は知らん
637 名前:デフォルトの名無しさん (スフッ Sd52-AyEu) mailto:sage [2017/02/15(水) 16:40:03.68 ID:4NekN3gFd.net] >>625 矛盾があれば手戻り、と、矛盾を刈り込むのとはあんまり変わらん気がするけど。 そりゃどちらでも描画してるうちに終わるだろうけど、 どちらでもない方を言ってるんだよ、その愚直に置く方。
638 名前:デフォルトの名無しさん (ワッチョイ 7642-LB0c) mailto:sage [2017/02/15(水) 16:53:27.86 ID:yJTbA8M80.net] >>626 矛盾があれば手戻りは計算量が多くなるから基本コンピュータじゃないと現実的じゃない その代わりどんな問題も解ける(以前書いたような例外はある) 計算量が多いって言ってもコンピュータからすれば大したことは無い 矛盾を刈り取りは一般的に人が解く際の行動をプログラミングしたものなので解法(テクニック的なもの)を実装することができればどんな問題でも解ける その代わり数独であってもテクニックは難解な物がある で刈り取りした後に手戻りすればいいじゃん、って言うけど手戻りだけで事足りるのになんでいきなり両方実装すんの?って話 ぶっちゃけ初めは現実時間で終わらんような愚直な実装でもいいと思う そこからチューニングするとか何かアルゴリズム考えるとかすれば学べるんだから
639 名前:デフォルトの名無しさん (スフッ Sd52-AyEu) mailto:sage [2017/02/15(水) 17:59:08.57 ID:4NekN3gFd.net] >>627 それだと、矛盾が無いだけの解がただの計算順で一意に決まってしまうじゃん。 根本的な解決ではないと思うが。
640 名前:デフォルトの名無しさん (ワッチョイ 7642-LB0c) mailto:sage [2017/02/15(水) 19:40:01.33 ID:yJTbA8M80.net] >>628 だからその問題点は一番初めに言ってるじゃん 話ずらしまくるのやめよ?
641 名前:デフォルトの名無しさん (ワッチョイ df6d-VyiL) mailto:sage [2017/02/15(水) 19:43:20.79 ID:W/gL5Tp30.net] >>628 だから何だ質問者がいつその条件を求めたんだよ コード書いたこともねえ雑魚は引っ込んでろ
642 名前:デフォルトの名無しさん (スププ Sd52-YCZx) mailto:sage [2017/02/15(水) 20:47:50.66 ID:kYO6iRfyd.net] 投稿者は、この解を得るアルゴリズムを作成するというロマンがあるんだよ。
643 名前:デフォルトの名無しさん (ブーイモ MM52-CvLw) mailto:sage [2017/02/15(水) 20:51:44.83 ID:GPHsk9GRM.net] >>628 仮定法でも全ての解は得られるよ? >>614 のアルゴリズムでFirstを外せばできるはず
644 名前:デフォルトの名無しさん (ワッチョイ 173c-CIv3) mailto:sage [2017/02/15(水) 21:22:49.38 ID:ZsrpE5Vs0.net] APIからwebsocketをつかってJSONを取得したいのですがネットを色々見てもさっぱりわかりません。 具体的には https://corp.zaif.jp/api-docs/ のストリーミングAPIのbtc_jpyです。 ヒントや参考になるサイトでも構いません。よろしくお願いします。
645 名前:デフォルトの名無しさん (ワッチョイ e223-CIv3) mailto:sage [2017/02/15(水) 22:38:19.69 ID:DiO+GUbF0.net] >組み合わせは最大81の9乗あるから 本質的にはどうでも良い話だが、「同じ行、列には同じ数字は使えない」と言うルールを無視しすぎていて気になっちまう 「ものすごく多い」ってことが表現できているから何も問題ないんだけどな
646 名前:デフォルトの名無しさん (ブーイモ MM52-CvLw) mailto:sage [2017/02/15(水) 22:42:17.14 ID:9FXA/5kCM.net] >>633 クライアントライブラリあるじゃん C#用はないみたいだけどC#わかるんならJavaなら楽勝だろ
647 名前:デフォルトの名無しさん (ワッチョイ eb77-6bgE) mailto:sage [2017/02/16(木) 00:10:21.41 ID:QO0gpLt00.net] >>633 codeprojectにjsonビューアのソースがあったような
648 名前:デフォルトの名無しさん (ワッチョイ 3b3c-P9CU) mailto:sage [2017/02/16(木) 00:40:31.38 ID:/E7gOtLl0.net] >>635 申し訳ないです。Javaのを見てもわかりませんでした。 >>636 jsonの処理は何とか出来るのですがwebsoketでの取得がわからないんです
649 名前:デフォルトの名無しさん (ワッチョイ 5f30-O7jY) mailto:sage [2017/02/16(木) 05:22:57.59 ID:1M26REHO0.net] そんなに分かりにくいところあるか…? https://ideone.com/O78ino JSONの切れ目は自分で探して 金儲けのためならその程度の維持は出して見せろ その程度の才能もないなら発注サイトに行って金払って作ってもらえ
650 名前:デフォルトの名無しさん (スププ Sd7f-6skL) mailto:sage [2017/02/16(木) 07:32:00.22 ID:/4MLopCid.net] 偉そうに
651 名前:デフォルトの名無しさん (ワッチョイ 3b3c-P9CU) mailto:sage [2017/02/16(木) 10:57:00.19 ID:/E7gOtLl0.net] >>638 これは参考になりそうです。ありがとうございます。
652 名前:デフォルトの名無しさん (オッペケ Sr9f-PPpI) mailto:sage [2017/02/16(木) 12:50:57.39 ID:Fl7cxYnSr.net] WebBrowserって今後もずっとIEなのかね? Edgeにはならないんだ?
653 名前:デフォルトの名無しさん (ブーイモ MM7f-FKuk) mailto:sage [2017/02/16(木) 15:05:24.57 ID:SJI/N2PkM.net] 絶対にない WinFormsが業務向けのプラットフォームであること、既に開発が終了していることを忘れてはいけない
654 名前:デフォルトの名無しさん (ワッチョイ 8bbb-eq+O) mailto:sage [2017/02/16(木) 15:33:56.56 ID:QchVkuhj0.net] 結局、Winform最強か。
655 名前:デフォルトの名無しさん (アウアウオー Sa7f-xIS6) mailto:sage [2017/02/16(木) 16:23:17.22 ID:/R92/z+7a.net] WebBrowserコントロールはIWebBrowserのだからIEのままでしょ EditコントロールがEditで、リッチエディットコントロールになってないのと似たようなもん WindowsUI.Xaml.WebViewかそんなとこでEdgeコントロールとしてはもう既に実装されてるんじゃないのかな
656 名前:デフォルトの名無しさん (オッペケ Sr9f-PPpI) mailto:sage [2017/02/16(木) 17:18:26.44 ID:Fl7cxYnSr.net] そうなのかあ しかし困る人多いよね
657 名前:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C) mailto:sage [2017/02/16(木) 18:03:45.
] [ここ壊れてます]
658 名前:02 ID:nVGauASoa.net mailto: まだXP使ってるところだって山ほどあるのに7/8.xを考えなくてよくなるのなんか何年後よ [] [ここ壊れてます]
659 名前:デフォルトの名無しさん (ワッチョイ 4bd6-eq+O) mailto:sage [2017/02/16(木) 18:53:57.26 ID:yaBP1ZBT0.net] レジストリいじればEdge相当になったはず
660 名前:デフォルトの名無しさん (ワッチョイ 0f9d-eq+O) mailto:sage [2017/02/16(木) 19:19:37.31 ID:cjCClO980.net] WinFormsの開発再開すればいいのにね
661 名前:デフォルトの名無しさん (オッペケ Sr9f-PPpI) mailto:sage [2017/02/16(木) 19:33:08.37 ID:Fl7cxYnSr.net] >>647 そうなのかー しかしユーザーがEdge持ってるとは限らないから面倒だね
662 名前:610 (ワッチョイ 9b90-XdR7) mailto:sage [2017/02/17(金) 23:35:39.67 ID:8hvoyQw40.net] レス遅くなってしまってすいません >>618 の後半なんですが、 1,候補の中の確定できない数字をとりあえず入れてみる 2.次のマスに移動、数値が入れられなかったら1に戻る この繰り返しですよね?もしこれを複数回繰り返して戻らない場合2回以上前に入れた数値まで戻らないといけない場合ってありますか?
663 名前:デフォルトの名無しさん (ワッチョイ 0f42-1n7Z) mailto:sage [2017/02/18(土) 02:25:11.55 ID:f0aH9wlg0.net] >>650 2の手順は1に戻るじゃなくて1つ前に数字を入れたマスに戻るだね 1個前に入れたマスに戻って別の数字を探しても見つからなければ更に1個前に戻る これを繰り返す 当然戻りまくって最初のマスに戻ることもある最初に入れた仮数字が間違ってたってことだから 要は全数字を入れるパターンを検索して矛盾が出ないパターンを求めてる ただし途中で矛盾が出たら以降はそのパターンに紐づく内容は無視することで大幅に検索回数を削減できて結果的にコンピュータレベルの計算速度を用いればそれなりの速度で検索可能って寸法 理解が難しければ空きマスが超少ない問題で手を使って動きを確かめてみると良いかも 別にこの問題に限った話ではないけど大抵のプログラムは原理を理解できないと実装できないからね
664 名前:610 (ワッチョイ 9b90-XdR7) mailto:sage [2017/02/18(土) 03:12:52.58 ID:zyhHTWXk0.net] >>651 原理はわかってはいるつもりなんですが、どう書けばいいのかわかりません 1、4、7と入れてきて7の次に入れるものがない場合、4を変更しないといけないわけですがこれをどうやって渡すか またもう一つ戻らないといけない場合、自分の理解の範疇を超えオーバーフローしてしまいます 他人のソースを読んでも頭に入ってきません
665 名前:デフォルトの名無しさん (ワッチョイ 0f42-1n7Z) mailto:sage [2017/02/18(土) 04:35:14.78 ID:f0aH9wlg0.net] >>652 あらま、その段階か 例えば仮数字を入れて次に進む時、今仮数字を入れた場所を記憶しておく配列を用意しておくとかどうだろう 進むたびに配列に仮数字を入れた場所が順次追加されていく感じ 戻る時は後ろから順に見ていけばいい 戻ってまた進む時は用意した配列を再度進むところから上書きする感じ 「5」番目のマスに1を入れた 「8」番目のマスに4を入れた 「10」番目のマスに入れられる数字がない 「8」番目に戻る 8番目には4が入ってるけどダメらしいので5以降で置ける数字無いか確認 それでも無ければ「5」番目に戻る 用意する配列には「5 8 10」って入ってるってことね この配列のどこを今操作しているか?を指し示す変数もあったほうが分かりやすいかもね ○番目って言うのは左上のマスを1、右下のマスを81と仮定しての話ね XYで管理してるならこの配列を2次元にしても良い そんな効率良い方法じゃないけど直感的には理解はしやすいかと思うけどどうだろう 他に何か分かりやすい案があるかもしれん
666 名前:610 (ワッチョイ 6b90-XdR7) mailto:sage [2017/02/18(土) 06:29:59.40 ID:ULV0oBLe0.net] >>653 ありがとうございます、これだと書ける気がします あと配列の中にある値のインデックスをLINQで取得しているのを拡張メソッドで定義したいですがうまくいきません First()やCount()の定義を見よう見真似で書きましたが、Whereに何を入れたらいいのかわかりません public static Type Index<Type>(this IEnumerable<Type> source, Func<Type, bool> predicate) where Type : IEnumerable<Type> { return source.Select((value, index) => new { Index = index, Value = value }) .Where(item => ) .Select(item => item.Value).FirstOrDefault(); } ひょっとして述語は引数として受けられませんか?
667 名前:デフォルトの名無しさん (ワッチョイ 8b7b-eq+O) mailto:sage [2017/02/18(土) 08:10:24.40 ID:bn0z7G5m0.net] あえてLinqで書くならこうかな?でもこういう場合foreachで書く方が速いし自然だと思う public static int Index<T>(this IEnumerable<T> source, Func<T, bool> predicate) { try { return source.Select((value, index) => new { Index = index, Value = value }) .First(item => predicate(item.Value)).Index; } catch (InvalidOperationException) { return -1; } }
668 名前:デフォルトの名無しさん (ワッチョイ 0f42-1n7Z) mailto:sage [2017/02/18(土) 09:33:35.33 ID:f0aH9wlg0.net] プログラム初心者だと思ってたら突然linqでてきてワロタ 俺には>>653 の説明でなんで>>654 に行けたか不思議だよ linqは奥が深いけど面白いね
669 名前:デフォルトの名無しさん (ワッチョイ 9b7b-g7u9) [2017/02/18(土) 12:02:11.53 ID:H3MLhpM30.net] OpenFileDialog.ShowDialogを使用するとフリーズします。 昔からある障害のようなんですが、 >cymon.sysというファイルの排他制御関連の処理に不具合があるのが原因 らしいのですが、該当ファイルはありません。 他のアプリの排他制御関連のバグなんて特定出来る気がしません。 どうすれば正常に動かせますか?
670 名前:デフォルトの名無しさん (スププ Sd7f-6bgE) mailto:sage [2017/02/18(土) 12:12:10.55 ID:F1GmP7Hpd.net] >>657 もうちょい詳しく。 再現するOSや、不具合が再現するソースとかないん?
671 名前:デフォルトの名無しさん (ワッチョイ 0f7b-TuOZ) mailto:sage [2017/02/18(土) 12:18:44.45 ID:AobYyoSr0.net] ニコリの数独・カックロを、力任せに解く方法か? バックトラック法だろ 「バックトラック法 数独」で検索!
672 名前:デフォルトの名無しさん (ワッチョイ 0f9d-eq+O) mailto:sage [2017/02/18(土) 12:19:58.05 ID:7QDYBSyf0.net] >>657 https://www.cyphertec.co.jp/news/cymon_revision.html これのことだとしたら、修正プログラム入れるしかないのでは? cymon.sysが本当に存在しないならもっと情報が必要だね
673 名前:デフォルトの名無しさん (JP 0H1f-vlft) mailto:sage [2017/02/18(土) 12:43:04.59 ID:1c96nb+dH.net] 特定のソフト入れた時にそのソフトのバグで干渉するってだけやん 入れてないなら関係ないし入れてるなら メーカーの修正あてるかアンインストールするかの2択やろ
674 名前:デフォルトの名無しさん (ワッチョイ fb0d-NHlF) [2017/02/18(土) 14:47:28.87 ID:lgYaiLIy0.net] CookieContainerの中身をWPFのDataGridで表示したいのですがどうすればいいですか?
675 名前:デフォルトの名無しさん (ワッチョイ df4c-6bgE) mailto:sage [2017/02/18(土) 15:01:37.60 ID:oF9zQOK10.net] そこでデーターバインディングでづよ
676 名前:デフォルトの名無しさん (ワッチョイ df4c-6bgE) mailto:sage [2017/02/18(土) 15:25:02.48 ID:oF9zQOK10.net] CookieCollection collection = new CookieCollection(); for (int i = 0; i < 16; i++) { collection.Add(new Cookie() { Name = i.ToString() }); } dataGrid.ItemsSource = collection;
677 名前:デフォルトの名無しさん (ワッチョイ df4c-6bgE) mailto:sage [2017/02/18(土) 15:25:23.75 ID:oF9zQOK10.net] あとは自分で