プログラマに「1~nまでの整数の総和取ってそれが偶数か奇数か判定せよ」って出題したらどうなるの?

1 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:01:38.198 ID:XKhNV8uR0
とんでもない方法でやるやつも実装できただけまだマシでライブラリをググってフリーズするやつとか居そう
2 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:01:51.221 ID:6gxc+vrY0
お前が死ぬ
3 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:02:54.397 ID:Fwb75FO+0
「総和とる奴はバカ」と判定すべき問題
47 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:44:36.150 ID:fK4MbnPf0
>>3
で出てるじゃん
4 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:04:18.633 ID:YXbYvDry0
Nの値で判別できるな
5 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:05:08.631 ID:TG7WOIW10
スレタイに総和を取るように書いてある
6 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:05:15.146 ID:trgdCe/t0
n<10:部分点1点
n<10^3:部分点10点
n<10^9:満点
7 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:07:25.044 ID:ca5aDS/c0
(n % 4 == 0 || n% 4 == 3) ? 'even' : 'odd'
28 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:26:19.987 ID:njTg5NsK0
すでに >>7 で答えでてるのに、なんで誰も触れないの?
三項演算子理解してない奴がスルーして素で考えてるの?
32 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:28:00.888 ID:XKhNV8uR0
>>28
>>1みりゃ分かるけどこんな問題も解けない無駄な計算量使うプログラマを笑うためのネタスレなのにマジで解けなかったりそれやるやつ湧いてきて真顔になってるところ
33 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:28:52.629 ID:LBUvTK3Q0
>>7
ここまでで一番好きな書き方
8 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:07:37.376 ID:PtH3Crwy0
1/2n(n+1)で、nかn+1の一方が必ず偶数で約分で1/2は消える
それでもなお偶数になるにはnかn+1が4の倍数ならよい
だからnを4で割ったあまりが0か3ならば1からnまでの総和は偶数になる
9 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:08:40.426 ID:pupnSSTC0
出力は偶数か奇数かどうかだけ?
11 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:09:24.227 ID:XKhNV8uR0
>>9
もちろん
10 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:08:48.547 ID:a1FBL42j0
nは入力?
繰り返しで足していって
2進数の一桁目だけ真偽見れば良い?
やり方忘れたけど
12 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:09:41.893 ID:XKhNV8uR0
>>10
入力です
13 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:10:25.212 ID:a1FBL42j0
>>でいけた気がするがと
andで見れば良いか
14 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:10:36.448 ID:11IrSZ5I0
isKisuu=(0.5*n*(n+1))&1==1;
こうか
15 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:12:55.917 ID:XKhNV8uR0
えぇ…これマジか…
16 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:13:25.990 ID:/DEUoTHzM
nが奇数かどうかでわかるだろ
17 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:14:34.216 ID:11IrSZ5I0
jsでやるなら
const isKisuu=[…Array(n+1).keys()].reduce((a,b)=>a+b)%2==1;
18 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:14:53.586 ID:bFpT51290
nを入力したとき、1~nまでの総和が奇数が偶数が判断して出力しろ、だったらともかくスレタイ通りならきちんと総和をとらないとだな
19 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:17:59.690 ID:eoz/bSNY0
総和取る計算が本当に必要かどうか確認からだな
20 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:18:53.571 ID:H3Rw5Bd/0
総和とる意味ある??
21 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:19:14.104 ID:Fcr57cB9d
総和を取るなら n*(n-1)/2
判定するだけなら n の偶奇の反転あふぃ
22 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:19:28.627 ID:Fwb75FO+0
アホ設計者「実際に総和とらんとわからんやろ?」
25 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:21:06.637 ID:XKhNV8uR0
>>22
スレには「仕様に総和を取るってあるから何が何でも総和を取る」って実装者が湧いていますね
23 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:19:49.107 ID:/DEUoTHzM
総和の出力が仕様として明確に求められてないなら過剰品質なんだよ
24 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:20:44.523 ID:a1FBL42j0
公式あるのね
割る2だから公式そのままシフトで書いた方が
総和取るより演算量少なくて済むな
27 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:25:02.200 ID:/DEUoTHzM
>>24
本気で言ってるの?(´・ω・`)
最近のプログラマーってそんなんなん?
29 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:26:38.996 ID:XKhNV8uR0
>>27
本屋に行って
「数式をプログラムするってつまりこういうこと」
って書籍を立ち読んでくるといい

最近のプログラマは想像を絶するレベルでやばいと分かる

30 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:26:54.719 ID:Fwb75FO+0
>>27
最近って「責任を取らないことが仕事」の人達だらけだから仕方ないね
26 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:22:00.684 ID:7f92j4qg0
mod4で考えれば楽勝
奇奇偶偶の繰り返し
31 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:27:20.666 ID:4SKAmoc/0
この仕様を出してきたやつが3ヶ月後に総和をとってる前提で別の機能を要求してくるのが明らかだからITドカタ的には言われた通り総和取るのが正解
事前に総和出力しませんよね?って確認しても数ヶ月後には事情が変わってるのが当たり前だからな
34 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:31:03.306 ID:njTg5NsK0
>>31
現場の判断ならそうだろうけど
普通にペーパーで出題された問題とするなら総和とってたら落とされかねない問題でしょ?
36 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:33:00.254 ID:/DEUoTHzM
>>31
プログラマとしては必要ないけど総和取っときましたが正解だけど
営業としてダメよ?

追加予算取れる要素を見逃したのかプログラマに後で楽したい(儲けたいなら)ならそうしといら?って言う差

37 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:36:02.856 ID:WDVuyXbY0
>>31
総和の偶奇を求める関数と総和を求める関数を別々に作ればいいだけじゃん
39 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:38:03.118 ID:/DEUoTHzM
>>37
例題が簡単なだけで現実的にこんな仕様の仕事が来たら仕様がバグってるって思わないの?
44 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:41:49.480 ID:XKhNV8uR0
>>39
やっと言いたいことを言ってくれる人が現れた
「仕様にそうあるから/後日求められるから」総和を取るって言ってる人は
総和を取る必要がない以上仕様の方がおかしいって言いに行くって観点が抜けてるのよね

そもそも問題が仕様の話に置き換わってるのはおいておいて

50 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:47:38.708 ID:njTg5NsK0
>>44
現実の仕事にたとえてどうするかって話は完全にネタとして受け取ってなかった
こんな問題は机上のテスト問題でしかあり得ないという観点でしか見てなかった
51 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:49:33.237 ID:XKhNV8uR0
>>50
それはそれで正しいが
「仕様変更に備えて総和を取る」
とか言い出してる人がいる時点で話変わってるのよ
40 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:38:30.228 ID:njTg5NsK0
>>37
その設計では「1~nまでの整数の総和」の部分が仕様変更されたときに
片方の変更をし損ねてバグらせる奴が出てくる
41 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:40:00.010 ID:WDVuyXbY0
>>40
じゃあ整数の偶奇を求める関数と総和を求める関数の2つにしよう
35 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:32:42.255 ID:ca5aDS/c0
めちゃめちゃでかい数値入れたらどうなるか考えないのかね
38 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:36:08.393 ID:inMZlXys0
思うんだけどこんなラフな板ですら聞いたら答えてくれる人がいる世の中で
果たして自分の脳を使う必要があるのだろうか?
42 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:40:28.039 ID:/DEUoTHzM
>>38
論文コピペ大学生かよ
仕事ってのは問題解決なんだよ問題じゃない仕事なんて存在しない
43 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:41:31.770 ID:inMZlXys0
>>42
仕事であればあるほど信頼性の高いやり方をする
信頼性とは多数決の事である
45 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:43:40.315 ID:WDVuyXbY0
そう考えると、偶数か奇数か判定するっていう仕様も正しいのだろうか?
偶数か奇数か判定すればいいというのは結果に過ぎず、本当は別の目的があるのではなかろうか?
46 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:43:46.707 ID:Fwb75FO+0
問題解決とは何が問題なのかを明らかにすることである
48 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:44:48.533 ID:TG7WOIW10
英語の勉強してるときに変な例文があっても
こんな文は実際に使われないとかいちいち言わずに従う
49 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:46:23.235 ID:ujvpsuyCM
競プロではよくある問題の出し方だろ
数学できなかったり問題の方針見抜けなかったやつが計算量ミスってしぬだけ
52 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 21:52:25.693 ID:fK4MbnPf0
総和を取るって言われたら勝手に最適な実装するだろうけど
そこのケースによっては先を見越して愚直に実装しとくこともある
53 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 22:03:00.899 ID:U+BbAawqd
早すぎる最適化おじさんに早すぎる最適化は諸悪の根源って言われるけど
早すぎる最適化なのか当たり前の実装なのか判断できない
54 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 22:04:46.563 ID:jZZkYdzQ0
さすがにこれはO(1)で処理する
55 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 22:10:40.394 ID:OQIV5UY90
書き込みに資格と年収と職歴添えてくれ
それみて正解を判断するから
56 名前:ひみつの名無しさん 投稿日時:2020/12/01(火) 22:23:17.625 ID:Fy+bp8mB0
print(‘even’) if 1 <= n%4 <= 2 else print(‘odd’)

コメント

タイトルとURLをコピーしました