- 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
- 561 名前:デフォルトの名無しさん (ブーイモ MM52-CvLw) mailto:sage [2017/02/12(日) 15:46:47.51 ID:9zVyZuTsM.net]
- 気にしない
本当に重要なロジックはクラウドに置く
- 562 名前:デフォルトの名無しさん (ワッチョイ a3d6-cGUq) mailto:sage [2017/02/12(日) 15:53:30.18 ID:LPrkPiV20.net]
- どうしても必要ならフリーの難読化ツール使えばいい
検索すれば活発に開発しているかどうかはともかくとして沢山見つかるぞ
- 563 名前:デフォルトの名無しさん (スププ Sd52-Znb2) mailto:sage [2017/02/12(日) 15:58:51.80 ID:30lbeLdWd.net]
- >>550
スタンドアロンの場合はどうですか?
- 564 名前:デフォルトの名無しさん (オッペケ Srf7-S/g0) mailto:sage [2017/02/12(日) 16:00:16.22 ID:/b84DIntr.net]
- >>550
ちとクラウドには置けないんだ >>551 探したけど4.5や4.6に対応してなくてせいぜい3.xか4までなんだよなあ… 情報古いのばかりだし、開発止まったり開発してるやつは有料化してるし 2万くらいまでなら出すけど10万以上とか悩む…
- 565 名前:デフォルトの名無しさん (ワントンキン MM62-S0So) mailto:sage [2017/02/12(日) 16:06:34.06 ID:UUbs1MWiM.net]
- クラウドに置けない理由は?
そんな重要なコードなのか?
- 566 名前:デフォルトの名無しさん (ワッチョイ 3223-CIv3) mailto:sage [2017/02/12(日) 16:08:50.62 ID:7mehC9vV0.net]
- UWPにするのも方法の一つだな
- 567 名前:デフォルトの名無しさん (ワッチョイ fe13-Znb2) mailto:sage [2017/02/12(日) 16:09:45.51 ID:4jYnBLuB0.net]
- クラウド前提でないシステムの開発なんて普通にあるだろ
- 568 名前:デフォルトの名無しさん (ワッチョイ a3d6-cGUq) mailto:sage [2017/02/12(日) 16:44:05.89 ID:LPrkPiV20.net]
- >>553
無償 (4.5対応) https://yck1509.github.io/ConfuserEx/ 有償 (4.61対応) babelfor.net/
- 569 名前:デフォルトの名無しさん (オッペケ Srf7-S/g0) mailto:sage [2017/02/12(日) 17:39:32.01 ID:/b84DIntr.net]
- >>554
会計ソフトみたいなやつとか画像ソフトみたいなやつとか 会計ソフトだとデータをクラウドに持ってくの客が嫌がる 画像ソフトだといちいちクラウドなんかで処理してたら激遅で使い物にならん >>557 おおっあるんだな…! 見てみます!
- 570 名前:デフォルトの名無しさん (ワントンキン MM62-S0So) mailto:sage [2017/02/12(日) 17:46:04.03 ID:UUbs1MWiM.net]
- 今時素人の管理するローカルにデータおいとく方が危険だろうに
速度必要ならネイティブアプリ書くし なんだかなぁ
- 571 名前:デフォルトの名無しさん (ブーイモ MM52-CvLw) mailto:sage [2017/02/12(日) 18:51:21.87 ID:9zVyZuTsM.net]
- >>558
そんなもんわざわざ難読化する必要あるのか? 受託開発なら客くらいは信用してやれよ
- 572 名前:デフォルトの名無しさん (ワッチョイ fe13-Znb2) mailto:sage [2017/02/12(日) 19:29:23.53 ID:4jYnBLuB0.net]
- 押し付けがましいクラウド推しだなw
- 573 名前:デフォルトの名無しさん (ワッチョイ 173c-lIOg) mailto:sage [2017/02/12(日) 19:56:31.74 ID:vM2j5Kno0.net]
- >>561
クラウドとクラサバの区別すらできていないように見えるな
- 574 名前:デフォルトの名無しさん (ワッチョイ 93bb-cGUq) mailto:sage [2017/02/12(日) 21:09:00.16 ID:8IP9T+dI0.net]
- クラウドはバズワードだろw
- 575 名前:デフォルトの名無しさん (ワッチョイ 9341-Avde) [2017/02/12(日) 21:35:43.32 ID:d34X37hQ0.net]
- いうほどバズか?
出始めはそうだったろうけど
- 576 名前:デフォルトの名無しさん (ワッチョイ 769d-cGUq) mailto:sage [2017/02/12(日) 21:59:02.46 ID:X2lEwKBH0.net]
- クラウドに置けとか、なんで知障は明後日の回答したがるんですかね?
>>557みたいなことが書けない知らないなら黙ってればいいのに
- 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持ってるとは限らないから面倒だね
|

|