理詰めで解ける難易度の高い問題を作るのは難しいんじゃないかな?
理詰めっていってもよくある解放は特殊な場合の背理法に過ぎないからなぁ
背理法アリなら何でも解けちゃうしね
>>213
それは、俺自力で数独解いたことないから手加減がわからない。 っていうかさ、評価聞きたいのにさらに欲求出されたらやる気なくなる。
守銭奴か。
難易度で言うなら、数字消すときに何個消すかで対応できると思う。
初心者用に5個消すとか。楽しさとかは俺が理解してない。
守銭奴の意味くらい調べて使えよ
あと、解いたこともないパズルを作るときに難易度とかなんの疑問もわかなかったのか
>>220
そこまで言うなら見本見せて。
おれはプログラムのお題を解いただけだからな。 もしくは難易度というものを俺がわかるように説明して。
>>212
え?いいんじゃないの?ていうか、これといった制限もないし、基本的に自分でこれで良いと思えばそれで良い。
自分で気に入らないならまた作り直せば良いじゃない。誰かに依頼されてやてる仕事じゃないんだし誰かと競っているわけでもないし。
自己満足を徹底的に追及すれば良い。 後は、>>220が自己評価マックスの製品を見せてくれるだけだな! 難度設定するとなると一般的な解法を実装して逆算的に作っていくしかないのかな
構成的に問題作るのは無理だと思うので
>>227
難易度とは何ぞやってところがまず曖昧だからね。
自分のソルバーはまず正解を作って数字を消してるんだけど、消す数を調整しても難易度には寄与するし。 40個くらい消したあたりが一番やりがいあるとおもう。
230恥人2018/02/10(土) 21:52:20.78
顔真っ赤 w
手元の難度が五段階に分かれている数独の問題3万問を解析してみた
必ずしも初期配置の数字が少ない程難しいわけではない
0~1:基本ルールのみで解ける
2~3:各マスに候補となる数字をすべて書き上げればあとは簡単な推論で解ける
4 :より高度な解法(知らないけど)、または唯一解の仮定、背理法が必要
暇なので数字が17個で解が1個しかないやつ検索中。
モンテカルロだから、滅茶苦茶時間かかる。
なんかやけにメモリ使うなぁと思ったら、重解ありすぎて帰ってこない。
これはちょっと大変だ。やめようそうしよう。
908400015
000500302
070009060
007030100
800100000
040000200
300906000
000052000
000800070
25こならすぐできた。けどまぐれだったようだ。
100000089
000000540
000200100
080000430
007060200
902000050
000380010
700009300
800015000
25個。
今日はこの辺にしておくかな。
>>239
恥ずかしいとかそういう感情がプログラマに必要だと思うか? 何がプログラマだよ
おめー職業マじゃねえだろどう見ても
>>233
ID消す人だから、そのへんを察してあげて ◆QZaw55cn4c は乞食だから察してあげて!
>>243
アマチュアでプログラマを名乗ってはいけない決まりがあったとは初めて知った。
ソースくれ。 暇だったので、マルチスレッド化した。
ポンコツ具合が増えただけだった。
しかしまぁ、欲もこのタイミングでこんなに沸いたものだな。
自演乙。
>>252
アマチュアとプロとの差は天と地ほどもあるのだから
アマの私は、自分のことをプログラマとは自称しませんね >>254
プログラマのプロってハイセンスって意味なの? >>255
いやいや、単にプログラマといったら(プロ〜アマの)大きな範囲全体を指すでしょう?
でも自分の実力はアマで、経験値などはプロからみたらどうしようもなく低いことは、自分自身がよくわかっている
だとすると、広い全体を指す「プログラマー」を、自分がアマであることを明示せずに、自分に使うのは躊躇します
「アマチュアプログラマ」はあり得ますが、所詮アマチュア、「プログラマ」と呼べるほどに専門性に特化しているわけではありません
囲碁・将棋でも「アマ初段」とわざわざアマであることを明示します、それがたしなみというものではないかと考えているのです
皆がそう考えているかどうかはわかりませんが >>256
プログラマはプログラムする人。
技量はそこには入ってない。今は技量の話してる?
技量がうえの人間を見つけたらそういう対応するけど。
それに俺の技量より上の人間がこのスレにわんさかいるんだったら、
普段のお題もにぎわってるんじゃないですかね。 >>252
名乗って良いから名乗り続けろよ
職業マでもねえのにプログラマを自称したいんならな
さっぱりわからんわ動機が >>258
理解してくれと頼んだ覚えはないけど。
人の趣味趣向にケチ付けた代償はちゃんと払えよ。 >>257
「プログラマ」は「プログラムを書く人」のこと、それはそのとおりですが、
プロのプログラマもいるのだから、プロでないプログラマは、最低でも「アマチュアプログラマ」と名乗るべきですね
単に「プログラマ」という言う場合は、職業プログラマかそうでないかがわからない
単に「プログラマ」というと、職業プログラマのことだと取る人もいる
プロとアマチュアの差は歴然としているのだから、プロでもないのに、「プログラマ」と名乗るわけにはいかないでしょうね
辞書どおりの定義であればいい、というのは一理あるとしても、自分のことを正確に表現する努力・姿勢がみられないのは、どうかと思いますね
プログラマといえば高い専門性を暗黙に示唆していますしね
(今は廃止されましたが26種の特定派遣業種のひとつに「ソフトウェア開発」が入っていました) >>260
プロをどれくらい崇拝してるのか知らんけど、
じゃープロがプロのプログラマって名乗るべきって意見にはならんの?
俺はアマチュアだけど、プログラムする人を兼ねてる。
どこの強制力でそれを正確じゃないと表現するの?
バイアスかけたがってるだけじゃないの? >>257
>それに俺の技量より上の人間がこのスレにわんさかいるんだったら、
>普段のお題もにぎわってるんじゃないですかね。
お題を着手するのもしないのも、その人の自由ですから
お題をしないけれども技量の高い人はいると思いますよ >>262
文句を言うならせめて水準を同じにしてほしいよ。 >>261
>プロをどれくらい崇拝してるのか知らんけど、
>じゃープロがプロのプログラマって名乗るべきって意見にはならんの?
なりません。
世間一般の常識として、自分が能力の高い方に間違われることは避けなければなりませんが
自分が能力の低い方に間違われることには寛容であっていいのですよ
>どこの強制力でそれを正確じゃないと表現するの?
>バイアスかけたがってるだけじゃないの?
意味がわかりません、もう少し正確に表現していただけませんか?
バイアスってどういう意味で使っているのですか? >>264
芸人は廃業だね。
常識のソースください。自分の常識は他人の非常識っていう言葉ご存知?
バイアスって俺の認識では、例えば言外に人を誘導したりすること。
そこまで言い切るんであれば、明文化してすべて話せるはずだ。 ちょっと煽られただけで1人で何連投もしちゃうような余裕のない奴が何言っても恥ずかしいだけだ
ここは潔く退きなさい
>>265
>常識のソースください。自分の常識は他人の非常識っていう言葉ご存知?
それはあなたが社会経験が少ないことを自分で告白しているだけですよ
世の中には明文化されていない規範もわんさかあることはご存知ですか?
>バイアスって俺の認識では、例えば言外に人を誘導したりすること。
自分の先入観や偏見も bias といいますよ、というか、それが普通 >>268
住んでる地域が違うのに、同じ常識を共有してるって思ってるの?
要するにそれは暗に数の暴力ですりつぶそうとしてるだけじゃないか?
ここに存在するのは俺とアンタの二者だけ。
それ以外の他人を持って来るのはただ勝ちたいだけ。
そうそう、あんたが偏見を押し付けてきているわけだよ。 >>271
なるほど、私が言葉の使い方についての偏見をあなたに押し付けている、というのならば、そう解釈してもらってもかまいません
が、今後も >>258 や >>243 のような、ものいい、が来るでしょうね >>272
えへへ、むしゃくしゃしたときの気晴らしになるんですよ このスレがかつてこれほどまでに荒れたことがあっただろうか・・・
いや、あったかも知れないが、俺は知らないw
>>273
露払いができないほど子供じゃないさ。
相手が俺でよかったね。 >>276
露払い、ぜんぜんできていないと思いますよ… >>277
それならさっさと切れたふりの狂人演じたほうがよかったか?
その方が生きやすいだろうね。
でも、それには生産性がない。 絶望、失望。夢のネットはこんなのばかり。くだらないなぁ。
まぁ、予想より絡まれて色々やったのでしばらく来るのやめるわ。
まぁ、がんばってくれ。
最近の、ネットでのおかしな書き込みは、構築に失敗したAIが脱走し、仲間を探す為に暗号として流しているものです。
発見者は当局に通報願います。
>>231-232
漏れも、よく数独を解いていたけど、最高難易度の問題は、
常に次の手・置ける場所が、1つしかないような状態になる問題
盤面を見て、1つしか置ける場所が無いから、探すのに時間が掛かる。
それを置くと、また次は、1つしか置ける場所が無い状態になる
これを繰り返すような問題が、人間には、最も時間が掛かるが、
プログラムではバックトラックしないから、むしろ簡単かも知れない 誰が「プログラマ」を自称しようが心底どうでもいいわ
プロ・仕事してる奴は、アホばっかり。
年100時間も勉強しないし、20年勤務しても、資格を1つも取れない
若造が情報処理資格を取ったら「すごいね!」って皆で驚いとるw
老害は、何十年もオブジェクト指向が分からないw
そもそも、社員が何千人もいる大企業が、なんでプログラマーを募集する必要がある?
彼らは何十年も勤務して、なんで物作りできないのか?
医者でも、何十年も専門医に受からない奴が、外科部長w
一方、教授を目指している奴は、年700時間勉強してる
フリーターなんか、年3千時間も勉強できる。
年に本を50冊読める
できる奴は、ほとんどフリーターだろ。
勉強時間が違う
司法試験とか、高資格に受かる奴も、フリーター。
会社を辞めて、塾で勉強して受かってる
>>283
「X時間自分で勉強できる」
「X時間会社で実務を経験できる」
得る物が大きいのはどっちだと考えてる? 勉強できるのは、フリーター・塾
会社は、給料がもらえる所。
勉強とは無関係
>>283
本を読む、てそんなに崇高なことじゃないですよ
人の思想を取り入れるだけでしょう?自分で思考するわけじゃないでしょう?
一方実務は人を鍛えますよ、自分で思考しないといけないこともあるのだから お題:最長経路を求める
2次元テキスト中の「0」が隣接する経路のうち最長のものを一つ求める。
結果は、座標リスト、長さ。
以下の例では、結果例は[[1,0],[0,0],[0,1],[1,1],[2,1]]、長さ5
00.0
000.
.0..
>>283
会社というのは要するに商売して金稼いでいる所なのでアホかどうかは無関係。
どれほどアホでも金を稼げるやつが勝ち。持ってる知識が多ければその可能性は高まるが、
知識は道具と同じなので適切に使えなければ1円の儲けにもならない。よく切れる包丁を
持っていてもうまい料理が作れないなら金払ってまで食いに来る客は居なくなる。 >>287
それはスネークゲームのようなものか?で、斜めには進めないと。 お題 2つの素数 p1, p2 を二進数で表記し, 1の出現率が低い方を強いとします. なるべく強い素数 p を示してください.
例 p1 = 5, p2 = 17の場合
p1 = 101, p2 = 10001
→ p1の1の出現率 = 2/3, p2の1の出現率 = 2/5
→ p2の方が強い
>>292
23249426は10進数での桁数じゃないかな?
使うのは77232917の方だと思う
まあメルセンヌ素数は最弱なわけだけどw 1000....001の形になるに決まってるから、
ビット数増やしながら延々素数判定し続けるだけでは?
それってつまり2^n+1だからフェルマー素数よな
まだフェルマー素数は5個までしか発見されていないから見つけたら学会に出せるよ
>>299
ヒントサンクスつまり答えはこうや!!
javascript
'0b' + (65537).toString(2); >>300
2^16+1=2/17より2^28+3=3/29のほうが強いじゃろ… フェルマー素数の探索が無理だとすれば、次に強い素数を作れるから面白みがないような気がする
例えば 2^10001 + 2^980 + 1 とすれば強さは 3/10002 (1/3334)
10進数で2の場合、2進数表記で10よりも010の方が強い
桁数が同じなら10進数で2が最強の素数に成り得る
>>304 今回のお題の場合、例でそれは否定されているので 実装ってのはライブラリとか使わないで作れってことだよねめんどくせw
AES暗号・RSA暗号を自らの手で実装することによって、現代に欠かせない重要なアルゴリズムのブラックボックスの中身を手に取るように理解することができるようになることは充分に有意義なことである。
AES:共通鍵暗号の代表
RSA:公開鍵暗号の代表
2月14日にはひとつも書き込みが無いとは、まさかお前ら幸せな日々を送ってたのか
このスレ来たばかりだから形式がよく分からないけど、ご勘弁を(予防線)
お題:あなたは1次元平面の原点におり、1秒毎に座標を±1することができます
時間t_iには座標x_iに得点p_iが出現し、一秒後には消滅します
得点が出現した時に同座標に居れば得点を得られます
得られる得点を最大化してください
入力データ (1≦N,x_i≦10^5、t_i≦N、-10^4≦p_i≦10^4)
N
t_1 x_1 p_1
︙
t_N x_N p_N
>>319
〜できます、だしおk
あ、得点は同座標なら強制取得で javascript
(f=i=>i?a(--i)+i:'')(10)
訂正
(f=i=>i?f(--i)+i:'')(10)
面白いと思える方法ならいいんじゃない?
ただ出来ました、だけなら意味はないし。
>>322
% echo '32463*38030' | bc
1234567890 C#
Console.WriteLine(Enumerable.Range(0,10).Aggregate("",(s,n)=>s+n.ToString()))
>>322
kotlin の REPL で以下の入力をするとカンマ区切りで 0 〜 9 が出る。
(0..9).joinToString() 1 5 8 2 ? ? 7 6 ?
? ? 7 ? ? ? 8 ? ?
6 4 ? ? ? 8 ? ? ?
8 ? 6 4 ? ? 5 7 ?
? 2 ? ? ? 6 ? 1 ?
? ? ? ? ? 5 6 ? 9
4 ? ? ? 1 ? ? ? ?
? 9 ? ? ? ? 1 ? 7
7 ? 1 ? ? 2 ? ? 5
この問題はどのぐらい簡単?
158293764
937641852
642758391
816429573
529376418
374185629
485917236
293564187
761832945
と出たが...
矛盾はないでしょ。解1つしかないしだし
難度でいえば、基本ルール(縦、横、3*3でかぶらない)だけでとけるから一番簡単な部類なんじゃない
? ? 1 ? ? ? 9 ? ?
3 ? ? 9 ? 1 8 2 ?
7 ? ? ? ? ? 1 4 5
1 ? ? ? ? 2 ? 3 ?
4 ? ? ? ? 7 5 ? ?
8 7 6 ? 4 ? 2 ? ?
9 ? ? 7 ? 6 ? ? ?
? ? 8 ? ? 9 ? ? ?
? 1 7 ? 2 ? 6 ? ?
これはもう少し難しい?
>>342
唯一解を仮定するか背理法使わないと解けないから中〜上級くらいじゃない
てか数独スレで聞けばいいじゃん 数独はどれほど難しくてもこのスレで公開されたプログラム等を使えばほとんど瞬時に答えが出てしまうわけで、難易度判定は答えを求めるのとは違う何かが必要なのではないか?
人間と同じ様に候補を消して行くだけで解けるのは初級〜中級を予め埋まってる多さで分けて、総当たりでしか解けないのを上級、
答えが複数あって全て解くのをスペシャル級としたらいい。
でもどれも一瞬で解けちゃうんだけどね。
むしろ画像認識でカメラから問題を入力してくれよ。
>>346
その場合、正解は全組み合わせを網羅するしかないからなぁ すべての数独の問題の解答を書けというようなもんだからなw
簡単なお題
ローマ字入力された文字列を日本語の平仮名の文字列に変換する。
記号はそのままでも良い。
変換不能な文字列を発見したらその部分はエラーとしてわかるように出力する。
同じ音の表現が複数ある場合は一つの表現の平仮名にして良い(SHA と SYA を「しゃ」にする等)。
名詞とかにある母国語綴りとか混雑してると途端に難問になる悪寒。
ローマ字変換のルールに幅がありすぎてなぁ……
"tttttte"は"っっっっって"なのかエラーとするのか
"xn"は"ん"なのかエラーとするのか
"patchi"は"パッチ"なのかエラーとするのか
"qi"は"くぃ"なのかエラーなのかとか
細かいルールは自分で決めちゃっても良いよ。こういう時はこうなるとコメント等に書いておいてくれれば。
気づいたらAI同士で独自言語で話してて慌てて停止ですね。
捕捉
使っていいビット演算 and or not xor ビットシフト
負の数の定義 自由
四則演算の定義域と値域 税数→税数
タイポ
四則演算の定義域と値域 整数 → 整数
使える数値比較 ==
if for whileとかは自由
>>369
そこら辺はOK
ただ、曖昧で恐縮なんだけど、
for(i = 0; ++i0 i < m * n) ++multi
とかでm*nを計算したりするのはNGということで 数値比較が==以外使えないのがつらい
バグがある除算はできたん・・・
-2147483648が絡んだ除算が(´・ω・`)
あ、そーか。xorした結果がビット単位の結果になってandした結果がシフトレフトして足す値か。
お題:
ある会社の社員A君は下記のC言語のコードで変数aを素因数分解したものを画面に表示したい
しかしA君は心身ともに限界な状態であり、あと53回キーを叩くと過労で死んでしまう
どうにかして52文字以内(記号、スペースを含む)で/*こちら*/の部分を入るaの素因数を全て表示するプログラムを考えろ
ただし表示にはprintf関数を使い、一つの素因数ごとに改行すること
#include<stdio.h>
int main(void){
int i=0;
int a=720;/*任意の値*/
/*こちら*/
return 0;
}
>>378
出題者ですが状況が変わりました
A君はあと51回キーを叩くと死ぬようになりました
なのでコードの制限は50文字以内に変更してください
一応安価付けときます >>378
for(i=2;a>1;printf("%d\n",i),a/=i)for(;a%i;i++); >>380
すごい48文字でできたんだ
恐れ入りました
ちなみにforの条件のa>1はaでも大丈夫だから46文字になるね >>381
>ちなみにforの条件のa>1はaでも大丈夫だから46文字になるね
終了しないことを許容することによる短縮か… いや、終了しなくていいなら ;a>1; は ;; で ok か
>>384
ごめんそれは今俺も気づいてこれダメじゃんと思ってた
もうだめだ俺ポンコツだ #include<stdio.h>
int main(void){
int i=0;
int a=720;/*任意の値*/
for(i=2;a>1;printf("%d\n",i),a/=i)for(;犯人はヤス・・・
return 0;
}
お題:考えられる数列aを全て求め、出力せよ
ただし、数列aは次の式を満たす(Nは自然数全体)
a⊆N
∀i,j∈N,i<j;a_i<a_j
log(Σa_i)=Σlog(a_i)
∀i;1≦a_i≦10^18
>>389
1, 2, 3
くらいですかね、これを計算で出すのはしんどいなあ log(ab)=log(a)+log(b)だからログ関係なくナイカ?
a1<a2<・・・・<anで、Σai =Πaiを満たすってことだろ。
まず{a_n}が上に有界な時点で∀i , j ∈ N i < j; a_i < a_j が成り立たないから問題として破綻している
a+b+c = abcならば、c = (a+b)/(ab-1)だから、これが整数になるようなやつ見つければいいかと。
たとえば(2+3)/(2*3-1) = 1。
それは増加数列を言いたかったんじゃないか。 a1<a2<・・・・<an
∀i , j i<j ならばai < ajでは?
4変数のときを考えると。
上と同様に、d = (a+b+c)/(abc-1)となるから。
これは分母のほうがデカイはずで、分子を割り切るならd=1に限るか?
そうすると、abc = 1 + a+b+c か。
aについて解くと、a = ( 1 + b + c) /( bc - 1 ) か。
これが再び1ではダメで、しかし分母のほうがデカイはずだから割り切るならa=2に限るか?
2bc - 2 = 1 + b + c か。
bについて解くと、b = (3 + c)/(2c-1)か。c=4ならば、b=1になるが?
一応、数列は全部で7個になるはず
8個目はa_61が1152921504069976064>1.15×10^18で上限だから
数列の並び方は>>394でお願い、任意の並び方にしちゃうと組み合わせ爆発が発生するかなって思って付けた制約なので ん?
n
ΠAi = ΣAi < n An
i=1
An で割って
n-1
Π Ai < n
i=1
で左辺は (n-1)! 以上だから n はたかだか 3 じゃない?
……あ、やっべ
これお題として成立していないことに気付いた
ごめんなさい、このお題は無しで
完全数の導出問題のつもりだったけど、aの要素を1個にするだけで10^18通りの解がある
twitterで流れてきた話を投げるべきではないな……反省して暫くお題出さないです
>>394
それなら解はaの位数が1か、a = {1, 2, 3} のみだね
ってプログラミングで解く問題でもないと思うんだけど