[過去ログ] スレ立てるまでもない質問はここで 152匹目 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
117: 2019/11/28(木)00:26 ID:6KRzmSQe(1) AAS
>>90です。遅くなりましたが、皆さまありがとうございました。
私もこれがしたい、っていうのがないので、65氏のように叱られそうですが、
>>96氏が、ひとつの解答なのかなと思いました。
アルゴリズムはもともと興味があり、データ構造・・・?if文とかのこと?あたりを押さえてみようかと思います。
また、質問するかもですが、よろしくお願いします。
118(2): 2019/11/29(金)00:56 ID:BLHAYCrB(1) AAS
プログラムが全く分からないしがない事務員を助けてください。
会社で月に1度ランチがあるのですが、その組分けを自動でしたいのです。エクセル関数でもよいので何か方法はないでしょうか?
▼条件
・ランチ出欠は希望制(ほぼほぼ参加)
・ランチは12時〜13時、13時〜14時に分けて行く
・どちらのランチタイムがよいか希望をあげることもできる(ほとんどの人は特に希望をあげていない)
・3人〜4人1組が6つほどできる
・社員とアルバイトを混ぜる必要がある
・前回、前々回と同じ人は避けたい
・同じ部署の人となるべく一緒にならないようにしたい
119: 2019/11/29(金)09:19 ID:B0LTR+GE(1/3) AAS
>>118
カークマンの組分け
外部リンク[htm]:shochandas.xsrv.jp
カークマンの女学生問題と有限幾何
外部リンク:www.slideshare.net
120: 2019/11/29(金)09:24 ID:B0LTR+GE(2/3) AAS
他、ナーススケジューリングのように動的計画法で解くのがラクか
外部リンク[htm]:www.nurse-scheduling-software.com
ナーススケジューリング - 数理計画用語集
外部リンク[html]:www.msi.co.jp
何にせよ動的計画法を会得するとラクに解ける部類の問題
大学生だと三カ月〜六か月ほどの勉強で会得できる
社会人だと1年くらいかかるだろうか
典型的な DP (動的計画法) のパターンを整理 Part 1 〜 ナップサック DP 編 〜 - Qiita
外部リンク:qiita.com
動的計画法(Dynamic Programming)をサルでも分かるように説明する - その1(フィボナッチ数列) - ベルリンのITスタートアップで働くソフトウェアエンジニアのブログ
外部リンク:www.jabba.cloud
121: 2019/11/29(金)09:30 ID:B0LTR+GE(3/3) AAS
「会得できる」じゃねーな
出来なかったヤツは落第する、
だから卒業生は全員できる、
要するに、会得したヤツしか卒業できない、だった
だから「(情報科の大学生ならば)会得せねばならない(must)」だ
出来なかったヤツは落とされるからな
会得して無いヤツを見かけないのはそのせいだった
ちょっとカン違いしてた
122: 2019/11/29(金)10:18 ID:EnPemvhb(1/2) AAS
Googleフォームで日付、出欠、希望時間帯を投稿できるようにして皆にURLを教えておく
日付省略は直近扱い
集計結果は毎日Google スプレッドシートかCSVで取得
スプレッドシートのJavaScriptで判定して、ランチ招待メールも自動で送る
プログラミングはランチメンバーにカンパありで募集をかけてみる
動的計画法はその辺のSEを捕まえても理解不能だったりするので
雑な近似値を求める素人アルゴリズムでもいいかも
123: 2019/11/29(金)10:28 ID:EnPemvhb(2/2) AAS
VBAマクロならともかくExcel関数でやるのは無理
Minecraftで動的計画法をやるような変態プレイになる
124: 2019/11/29(金)21:33 ID:HV7pdoW5(1) AAS
>>118
俺も事務職で、初歩的なプログラミングでエクセルの自動化をしたりはするけど、
その問題はプロじゃないと無理。
「プログラムを動かすソフトをインストールして、初歩的な使い方を覚えて、
この質問スレの人が書いてくれた呪文のようなコード100行をがんばってコピペ」
といった程度では、ぜんぜん無理。
このスレの人にやってもらうとしたら、何度か打合せをしたうえで1000行どころじゃないコードを
書いてもらわないとだめだと思う。
つまりプロに依頼しないとできない仕事。
125: 2019/11/29(金)22:27 ID:J4p7U6+W(1) AAS
ライブラリ化できない問題として昔から有名だよね
126: 2019/11/29(金)23:47 ID:HRptkZoq(1) AAS
ソルバーというのがあってだね・・・
127: 2019/11/30(土)00:06 ID:/gaQUKPS(1) AAS
まず各社員ごとに、前々日までに一緒になったメンバーのリストを作る
一人最大6人だから6列あればいい
社員数25人なら25×6の表?を1つ作る
それから社員25人の表?を一つ
13番まで社員 14番以降バイトにしておく
で、ここから総当り的に
まず一人目
(1 , , ,)
?から1を削除 ?のうち1の過去メンバーを削除すると表?が出来る
その表から一人ランダムで取り出す
(1,5, , )
?から5の過去メンバーも削除して?上書き
その表から一人取り出すが、社員2人確定してたら14番以降から取り出す
(1,5,16, )
同様にやると
(1,5,16,23) のように1組完成
表?から1組メンバー4人を削除して?上書き
2組目作成へ
こういう感じでいいでしょ
あと希望と出欠を加味するように修正すりゃいい
128: 2019/11/30(土)01:50 ID:HbGyzSLF(1) AAS
・社員とアルバイトを混ぜる必要がある
・前回、前々回と同じ人は避けたい
・同じ部署の人となるべく一緒にならないようにしたい
これら各々に対する、0〜100点の評価関数を作る必要がある。
どういう状態なら、点数がどれぐらい上がるのか?
129(1): 2019/11/30(土)05:57 ID:hIYU8kOK(1) AAS
評価関数なんていらねー
この条件なら1日目の組み合わせを4日目と同じにしてよい
つまり3日分決めてしまえばそれをローテーションしてもいいくらいのどうでもいいことだ
逆に、むしろ6日間は被らせたくない条件の方が
選択肢が減ってちょうどよくばらける結果が得られる
130: 2019/11/30(土)07:08 ID:gS3eqmso(1) AAS
>>129
ランチ出欠は希望制、12時と13時のどちらでランチをとるかも希望制って条件だから
単純なローテーションだと無理じゃない?
3日前は12時だったけど、今日は仕事の都合で13時にしたいって希望が出ることもあるんだろう
131(1): 2019/11/30(土)07:13 ID:WKFbtD9B(1) AAS
ランダムで10000パターンぐらいだして
その中でどれかを選んでも良い気がする
完璧じゃなくていいのよ
132: 2019/11/30(土)13:02 ID:iIHG4CVu(1/3) AAS
>>131
これだな
今のCPUならあと何桁か増やしてもいける
評価関数なんて簡単な話で、同じ部署の人がいたら1点、前々回と同じ人なら2点みたいな重み付けをして合計値が低いのがいいプラン
133: 2019/11/30(土)13:06 ID:iIHG4CVu(2/3) AAS
ローテーションのジョークにマジレスはいかんでしょ
3日毎に同じ面子と食事とか、言われたお題は成立させつつも目的を完全に台無しにするスーパーソリューションだよ
134: 2019/11/30(土)13:15 ID:iIHG4CVu(3/3) AAS
いや月に1回の開催なら3か月前だから辛くはないか
普段会わない人同士を交流させたいという意図は果たせないけど
135: 2019/11/30(土)13:45 ID:F3eUnd42(1) AAS
誰々と会った割合でも出していって
会った割合が低い人とマッチングさせれば良いんじゃね?
これなら簡単そう。
136: 2019/11/30(土)18:23 ID:+i+64MX9(1) AAS
それって何か簡単になってる?
1つめのグループを作るのは元から簡単だけど、後半に作られるグループが全く条件に合わないケースが避けられないと思う
137: 2019/11/30(土)18:25 ID:wqZ7RFN0(1) AAS
要件的にこのスレで解決できることじゃないだろう
質問者置き去りになっているし
138(1): 2019/12/02(月)23:11 ID:1Vg7MoK7(1) AAS
ランチの組分けのやつプログラミング分からない人には無理かもだけど
PuLPとかのソルバーを使うと100~200行前後でできるよ
外部リンク[html]:coin-or.github.io
139: 2019/12/03(火)00:48 ID:rExjyqzm(1) AAS
Excelに搭載されてるソルバーでも頑張れるのかな
140: 2019/12/03(火)01:15 ID:jDo5c24e(1/2) AAS
Excelについてる標準のソルバーは変数の上限が200個なので頑張れない
最大24人を3~4人ずつ6グループに分けるとして>>138の方法だと13000個程度の変数が必要
やり方変えれば変数の数は減らせるかもしれないけど200個は無理
141: 2019/12/03(火)11:08 ID:9QFkLtcg(1) AAS
考え方変えて
社員だけ12人
これを2人ずつの組を作るのと同じ理屈
1,2
1,3
1,4
.
.
1,12
11日でローテーション
これは誰から見た組み合わせでも11日でローテーションになる
同様にバイトだけ12人でも11日でローテーション
別々に組作った後、社員とバイトを合わせるのに11×11の組み合わせ
これはランダムでやっても当分被ることは無い
被っても11日ぶりにしかならん
142(2): 2019/12/03(火)11:34 ID:Bd0eSxhf(1) AAS
myfunc(true)
myfunc(false)
これじゃ引数意味不明だからenumにしろとかよく言われるけど徹底してる人いるの?
143: 2019/12/03(火)11:52 ID:I9YoNGrF(1/2) AAS
回路遮断制御装置・開く
回路遮断制御装置・閉じる
回路が作動するのはどっちでしょう
144(1): 2019/12/03(火)12:30 ID:V2s4KbDl(1) AAS
作動するのは閉じるでしょ
回路がcloseで通電というのは割と普遍
enabledなら迷う
145: 2019/12/03(火)13:18 ID:g2sdmHcp(1/2) AAS
>>142
関数名を工夫
146: 2019/12/03(火)13:22 ID:g2sdmHcp(2/2) AAS
引数が関数の重要な役目な場合の話
些細なオプションであればtrue/falseで良いが
変数名には意味がわかる名前をつける
ヘッダにも記述する
全てENUMで定義なんてやらん
いろいろなAPIだってBOOL値を引数にする
上下前次1-新書関写板覧索設栞歴
あと 856 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.013s