プログラミングのお題スレ Part20at TECH
プログラミングのお題スレ Part20 - 暇つぶし2ch250:蟻人間
21/09/30 20:33:52.35 8ZMYiRqf.net
>>239
ここに居るほとんどの人が分かってないから、解説をお願いします。

251:デフォルトの名無しさん
21/09/30 20:35:20.03 BaUXpZJu.net
>>242
素直に「僕には難しすぎてわからないから詳しく教えてください」って言えないの?

252:蟻人間
21/09/30 20:45:22.12 8ZMYiRqf.net
>>243
ここは解いた人が解説しないと

253:デフォルトの名無しさん
21/09/30 20:46:54.85 BaUXpZJu.net
>>244
お前とQZ以外は理解してるよ

254:蟻人間
21/09/30 21:01:09.92 8ZMYiRqf.net
2つの副業と、ベルトコンベアのラインでねじ回しの仕事で疲れてるから許してくれよ。

255:蟻人間
21/09/30 21:13:56.42 8ZMYiRqf.net
この技術を応用すればロボットアームを自由自在に動かせそうだね。

256:蟻人間
21/09/30 21:47:22.16 8ZMYiRqf.net
イーロン・マ●クさん、見てる? イェイ!

257:デフォルトの名無しさん
21/09/30 23:18:58.96 vWP+uHYR.net
>>247
誤差が積もり積もるから無理

258:デフォルトの名無しさん
21/10/01 00:08:37.55 VIfkqI1d.net
群論で簡単に解けそう

259:デフォルトの名無しさん
21/10/04 21:51:58.57 8pCgPPfH.net
お題: CSV形式のテキストデータを検索する grep のようなコマンド(または関数)
CSVの形式は RFC 4180 の通りで文字のエンコーディングは UTF-8、改行は CR/LF。
この辺のページを参考にすると良い。
URLリンク(datatracker.ietf.org)
URLリンク(www.kasai.fm)
URLリンク(blog.tech-monex.com)


260:%E3%83%83%E3%83%88%E3%81%AE%E5%AE%9A%E7%BE%A9 普通の grep コマンドを CSV ファイルに対して行うと1つのデータで改行が入っていた時に何行目の何列目のデータなのかが分からなくなって不便である。 その他、ダブルクォーテーションで括られているか否か、データとしてカンマやダブルクォーテーションを含むか否かで検索する側が正規表現を考慮して作らねばならず面倒臭い。 ということでこういった面倒くささを解消するコマンドを作るのがこのお題。 コマンドという形式ではなく正規表現と検索されるCSVテキスト(あるいはCSVファイル名や読み込みオープンしたファイルデスクリプタ)と検索する時のオプション(大文字小文字を無視など)を渡すと検索結果を返す関数を作成しても良い。 尚、1行目の項目名が入っている事がある行についてはその存在の有無をオプションで渡して指定する方式にして良い。 検索結果はパターンにマッチしたデータについて何行目、何列目だったかが分かるようにしてデータと共に出力する(関数の場合は呼び出し元に返す)。 出力する時にデータを見易くするために改行があったら \n 等にエスケープして1行にしても良い。 CSV読み込みや正規表現について既存のライブラリを使うか否かはご自由に。但し言語や環境に最初から付属していない外部のライブラリを使う場合は何を使ったかが分かるようにコメント等に入れておくこと。



261:デフォルトの名無しさん
21/10/04 23:29:46.48 nQu0++L9.net
はい次

262:デフォルトの名無しさん
21/10/05 01:25:35.09 jsFp2nZ3.net
難し過ぎたか・・・

263:デフォルトの名無しさん
21/10/05 03:24:50.56 8XAhfzzR.net
お題として質が低いのよ。
課題だねこれじゃw
宿題や仕事は自分でやってどうぞ

264:デフォルトの名無しさん
21/10/05 07:56:40.58 DrLIL1/r.net
てかちょっとガチでやったらそれなりの規模になるからこんな所でやるようなもんじゃない

265:デフォルトの名無しさん
21/10/05 11:30:23.33 akfRupr1.net
せやな
どんなに長くても30分くらいて完成する程度がやってみようと思える限界やろな
所詮暇つぶしやし

266:デフォルトの名無しさん
21/10/05 11:35:39.40 jsFp2nZ3.net
まあやるやらないは自由なので

267:デフォルトの名無しさん
21/10/05 12:04:55.27 +8sevm6S.net
じゃあ俺がやるよO/

268:デフォルトの名無しさん
21/10/05 12:39:36.95 mwjMS5Mk.net
というか正確に仕様を満たせというのは実装チャレンジであって僕の考えた最強の解決策を見せっこするためのお題にはならんだろ

269:デフォルトの名無しさん
21/10/05 12:57:06.08 UApdMlTn.net
>>251
スレリンク(tech板:88番)
> 88 名前:デフォルトの名無しさん (ワッチョイ 12ad-ZF+H)[] 投稿日:2021/09/28(火) 00:00:21.68 ID:qy0bUCok0
> >>81
> CSV用のgrepってあったらいいよな。
> ライブラリ使えば簡単そうだからお題スレに出しておくかな。

270:デフォルトの名無しさん
21/10/05 13:17:01.07 +8sevm6S.net
>>260


271:デフォルトの名無しさん
21/10/05 13:17:11.37 +8sevm6S.net
>>259
??

272:デフォルトの名無しさん
21/10/05 13:17:42.69 +8sevm6S.net
解かない人は黙っててもらえないかな

273:デフォルトの名無しさん
21/10/05 13:19:46.17 +8sevm6S.net
>>255
ライブラリ使えば余裕
>>256
俺は人生かけてチャレンジする

274:デフォルトの名無しさん
21/10/05 13:20:57.94 +8sevm6S.net
>>251
ちょっと待ってろ俺が回答してみせる
しばらく修行の旅に出る

275:デフォルトの名無しさん
21/10/05 13:54:06.13 8XAhfzzR.net
>>260
そんなことだろうと思ったよ

276:デフォルトの名無しさん
21/10/05 14:03:05.86 +8sevm6S.net
>>254
ライブラリ使うのもあり


277: オートマトンを実装するのもあり Bison使うのもあり パーザジェネレータから作るのもあり すごく面白そうじゃん



278:デフォルトの名無しさん
21/10/05 14:03:59.63 +8sevm6S.net
お題に文句つけるのはお前ららしくないよ
淡々と馬車馬のように回答するのがお前らのアイデンティティだろ
初心思い出せよ

279:デフォルトの名無しさん
21/10/05 15:15:20.74 jsFp2nZ3.net
>>260
そうそう。それそれ。

280:デフォルトの名無しさん
21/10/06 12:59:47.28 xRQj077j.net
お題 持久戦
隔たりのない6面のサイコロがN個ありi番目のサイコロのj番目の面には整数Aijが書かれている
高橋君は一個のサイコロを選んで一回振ると言う操作を繰り返す。
ただし2回目以降の操作で、前回の操作で出た目より小さいか同じ目が出てしまったら操作を止める
各回どのサイコロを振るかは前回に出た目を見てから決めることができる
高橋君は出来るだけサイコロを多く振りたいと考えている
操作の行われる期待値が最大化されるような選択が行われたときの操作回数の期待値を求めよ
と言うのが数学板に投下されたけどどう見ても数学の問題でないので全員ガン無視
URLリンク(atcoder.jp)

281:デフォルトの名無しさん
21/10/06 12:59:53.99 xRQj077j.net
以下自分の計算した例
間違ってるかも
入力
1
[ [ 1,2,3,4,5,6 ] ]
出力
117649 / 46656 ( = 2.5216263717421126 )
入力
3
[ 1,2,3,4,5,6 ]
[ 1,4,9,16,25,36 ]
[ 1,8,27,64,125,216 ]
出力
13070575 / 3779136 ( = 3.4586146145574013 )
入力
3
[ 1,1,1,1,1,1 ]
[ 2,2,2,2,2,2 ]
[ 3,3,3,3,3,3 ]
4 / 1 ( = 4.0 )
出力は別に小数表示でも良いとする
尚最後の例は元サイトの“全部異なる”の制約満たしてないけど検算用、無視して桶

282:デフォルトの名無しさん
21/10/07 19:56:52.00 intYWBu8.net
隔たりって何

283:デフォルトの名無しさん
21/10/09 14:34:36.05 uZ4xSJeU.net
>>272
偏りのないです
元ネタのホムペには他にも何問か有るんですけどコレ以外はあんまり面白いのがない
ちなみに例はN=1,3でこれくらいだと総当たりでも解ける
でも元ネタサイトの制限はN≦30000でこれだと実質総当たりだと解けない
なので元ネタは「いわゆるDPで解ける問題だけどできますか?」が題意のようです
まぁここではN=3くらいでパッパッと解ければいいかと

284:デフォルトの名無しさん
21/10/12 06:03:57.89 e1q14myl.net
お題:
正整数 N が与えられます
f(x) = 正整数 a, b であって 0 < a / b < 1 かつ b ≦ x を満たす a / b の「値の種類数」
としたとき f(x) = N を満たす x が存在するか判定しなさい
制約:
1 ≦ N ≦ 10^12
入力: N
出力: x が存在するのなら "Yes", 存在しないのなら "No"
入力例 1: 11
出力例 1: Yes (f(6) = 11 です)
入力例 2: 123
出力例 2: No
入力例 3: 303963552391
出力例 3: Yes (f(1000000) = 303963552391 です)
f(x) の例
f(1) = 0
f(2) = 1
f(3) = 3
f(4) = 5
f(5) = 9
...

285:デフォルトの名無しさん
21/10/13 17:28:45.55 igjNiW+q.net
>>274
 URLリンク(ideone.com)
 c++
 アルゴは"OEIS A015614"より、本人はよくわかってない
 余談:単純にオイラーのφを200万やっても2秒くらいだった

286:デフォルトの名無しさん
21/10/15 22:08:55.85 NqIVJaNX.net
じゃ簡単なお題を
1.少数(整数部MAX5桁、小数部MAX5桁)を入力し、分数に変換するプログラムを作成しなさい。
2.誕生日と日付AをそれぞれYYYYMMDDの8桁の整数で入力し、日付Aの時点で何歳かを表示するプログラムを作成しなさい。
3.西暦年YYYYを入力して閏年か否かの判定をするプログラムを作成しなさい。

287:デフォルトの名無しさん
21/10/15 22:53:54.66 HBylJ5Wv.net
平面3リンクマニュピュレータの逆運動学のプログラミングを完成させなさい。
キーボードで手先の位置を入力すると、関節角が表示されるようにすること。
scanfを使うのと、アームの長さなどは適当に決めていいという条件。

288:デフォルトの名無しさん
21/10/15 23:23:30.53 eqKsqNtm.net
>>277
平面3リンクマニピュレータというものを検索してみたけど、手先の位置だけ与えても各関節の角度は同定できないのでは?

289:デフォルトの名無しさん
21/10/15 23:45:51.35 HBylJ5Wv.net
>>278
第1関節は原点で固定ですね。
手先の位置・姿勢が(xed, yed, φed)と与えられた(キーボード入力)時の、第3関節の位置が
x2=xed-L3×cosφed
y2=yed-L3×sinφed
と求まり、第3関節がこの場所に来るには、リンク1とリンク2が三角形の2辺になるように第1関節と第2関節の角度を決めるという感じですね。

290:デフォルトの名無しさん
21/10/16 02:01:06.18 8sv207AJ.net
お題専門用語だらけでググらないと意味わからないようなお題やる気にならん

291:デフォルトの名無しさん
21/10/16 04:05:29.07 a3RnthCp.net
Visual Studio Code / VSCode Part11
スレリンク(tech板:173番)

292:
21/10/16 17:58:18.20 EXZ4MfzZ.net
>>268
>初心思い出せよ
すみません……

293:デフォルトの名無しさん
21/10/16 18:45:58.11 BO6yK2Ly.net
scanfってことはHaskellじゃダメなのか。
休み一日しかないから取り掛かってみるか止めとくか悩むね。

294:デフォルトの名無しさん
21/10/16 18:53:52.75 BO6yK2Ly.net
>>277は算数はわかってるんだけどプログラムがわからないんだろな。
そんなあなたにHaskell!!Haskell!!

295:デフォルトの名無しさん
21/10/16 19:48:39.78 ZzoUZQ8H.net
>>277
C++のスレで僕の丸投げ課題だれもやってくれないって拗ねてた奴か
こっちにまで来て人に迷惑かけるなよ

296:デフォルトの名無しさん
21/10/16 21:10:27.39 27uehHe1.net
>>284
数学じゃないだろ

297:デフォルトの名無しさん
21/10/17 08:07:29.47 QqhGhKAl.net
算数じゃなかったら何なんだ。

298:デフォルトの名無しさん
21/10/17 08:09:34.06 eIKWemED.net
物理

299:ハノン
21/10/17 08:14:29.67 iZHfLY3S.net
>>287
物理なら剛体力学でしょうが力学的要素はないから今回は工学の機構学とかそんな感じ
>>279
>リンク1とリンク2が三角形の2辺
せっかく一つ余分にある自由度を、そんな縛りで消費するのはもったいないと思います、それは力学的配慮ですか?

300:デフォルトの名無しさん
21/10/17 08:34:02.73 QqhGhKAl.net
私は高校一年生の算数で解ける。

301:デフォルトの名無しさん
21/10/17 08:35:04.57 QqhGhKAl.net
高校一年生が解く方法と、大学生が解く方法は違うのだろうか?

302:デフォルトの名無しさん
21/10/17 09:18:03.49 MkgjpPUe.net
>>277
まぁ、
X=Lcosθ+Mcos(θ+φ)+Ncos(θ+φ+Ψ)
Y=Lsinθ+Msin((θ+φ)+Nsin(θ+φ+Ψ)
みたいな感じで、LMNは適当に決めるとしても、角度のパラメータが3つあるんで、
もう1条件制約をかけないと決まらないケースが多発するだろうなぁ。
アームの長さを適当に決めろというなら、N=0にでもしてしまえば、
要はLとMと(原点と(X,Y)の距離)の三角形で角を求めろっていうだけの問題だから、
余弦定理でcosθは求まるかな。
それはインチキだというなら、
原点と(X,Y)の距離に応じてLの先端部分と(X,Y)までの距離が適当・・・
たとえば、(M+N)の半分になるような位置に位置づけることにして、
あとは、余弦定理で解けそうだけど。
よりコンピュータらしい力技でいくなら、三重ループで0から360度まで適当なステップ
(たとえば、5度おき)に回して、距離が目標位置に一番近くなった時の値の前後
(5度おきにとったなら前後5度分・・10度分だね)を1度とか0.1度とかのステップで
3重ループで回して、一番目標位置に近かったものを答えにする。

303:デフォルトの名無しさん
21/10/17 10:36:29.88 31BFfd9w.net
腕の長さ自由に決めていいならひとつ捨てて残り2つ同じ長さにすればカバーできる範囲同じで計算も簡単になる
元のお題でそもそもわざわざ関節3つ使う理由がない

304:デフォルトの名無しさん
21/10/17 10:51:06.44 UoQPOfGF.net
どうでもいいことを長々と議論するなあ
無視すりゃいいだろw

305:デフォルトの名無しさん
21/10/17 10:57:44.74 QqhGhKAl.net
手先の位置というのが同定できない原因だったけど、位置と角度に変わったので大丈夫では?

306:デフォルトの名無しさん
21/10/17 11:01:26.31 QqhGhKAl.net
関節角度の並びは二つに限られ、第一腕部第二腕部が直線に並ぶ時ひとつ、それ以外は二種類の並びに制限される。

307:デフォルトの名無しさん
21/10/17 12:08:44.44 QqhGhKAl.net
URLリンク(imgur.com)
こんな感じでは?
実線と点線の二つの腕の位置が有り得る。
あとは余弦定理を使えば全て解ける。

308:デフォルトの名無しさん
21/10/17 12:15:55.19 06wimQoq.net
>>277 は、こいつに出された大学での課題。C/C++ スレで丸投げ指摘されて遁走。

309:デフォルトの名無しさん
21/10/17 15:12:12.66 atjZW8su.net
お題: 「平面3リンクマニュピュレータの逆運動学」とは何か。日本語で説明せよ。

310:デフォルトの名無しさん
21/10/17 15:21:58.09 06wimQoq.net
ロボット工学本の逆運動学の章に必ず載ってる問題。勿論解法も載ってる。
>>277のアホはその解法のプログラミング(の課題)が出来ず、ここの連中にやらせようとしてる。

311:デフォルトの名無しさん
21/10/17 15:54:50.71 31BFfd9w.net
作りゃいいと言われてもあまりにも意味わかんない
関節3つつけるのは当然手先の向きとかに制約がないと意味ない
じゃあ無視して関節2つでと言われたら面白くもなんともない

312:デフォルトの名無しさん
21/10/17 18:26:22.03 QqhGhKAl.net
結論:算数で十分でした。

313:デフォルトの名無しさん
21/10/17 18:38:41.07 W8S2Fmip.net
>>277 長さ全部1でやってみた
URLリンク(ideone.com)

314:デフォルトの名無しさん
21/10/17 18:39:49.61 QqhGhKAl.net
>>303
すごい。

315:ハノン
21/10/17 22:41:52.63 iZHfLY3S.net
>>276
>>276 1. : C
URLリンク(ideone.com)
手間取ってしまいました…

316:デフォルトの名無しさん
21/10/18 12:12:09.30 MhIWImiq.net
ときどき言ってたり、やったりするがいまだ解答不明
平面上に円をおき、その円周上の整数点がちょうどn個となる円の最小半径は?
具体的にn=47でもわからない

317:デフォルトの名無しさん
21/10/18 19:23:56.84 578ljV9d.net
nは奇数にもなり得るの?

318:デフォルトの名無しさん
21/10/18 20:05:15.05 h1g8zzDx.net
>>306
昔そんな問題見たな
このスレかも

319:デフォルトの名無しさん
21/10/18 20:08:42.56 h1g8zzDx.net
全てnに対して円が存在するかどうかはわかってるの?
n=0, n=1の時は�


320:~は存在するが最小値は存在しない n≧2の時は円が存在するなら最小値も存在する



321:デフォルトの名無しさん
21/10/18 21:27:28.14 9iPUXHWE.net
1970年から2369年までの間で
カレンダーの曜日が365(366)日同じパターンで出て来る年をグループ分けして
グループが全部で何個あるか(たぶん即答7個だけど365と366を違うものとするので7以上)と
各グループに何年が属するかを出力するプログラム

322:デフォルトの名無しさん
21/10/18 22:48:50.35 cIVwbLw+.net
400個だろ

323:デフォルトの名無しさん
21/10/18 23:32:12.79 o3blQ8kr.net
最大で14個だよね?

324:デフォルトの名無しさん
21/10/19 00:20:44.71 eZJKwUVR.net
>>276
とりあえず1だけ。
perl -ne 'print int($_ * 100000) . " / 100000\n"'

325:デフォルトの名無しさん
21/10/19 00:37:17.41 uZ+aFQr8.net
>>310 bat
@echo off &setlocal enabledelayedexpansion
for /L %%y in (1970,1,2369) do set /a "fL=^!(%%y%%4)^^^!(%%y%%100)|^!(%%y%%400), g=%%y-1, w=(%%y+g/4-g/100+g/400)%%7" &for /f %%i in ("!fL!!w!") do set "p%%i=!p%%i!,%%y"
set n=0
for %%w in (日,月,火,水,木,金,土) do set "w!n!=%%w"&set /a n+=1
set L0=平
set L1=閏
echo 閏有無 1月1日の曜日 : 西暦年
for /L %%a in (0,1,1) do for /L %%b in (0,1,6) do echo !L%%a!年 !w%%b!曜日 : !p%%a%%b:~1!
pause &exit /b

326:デフォルトの名無しさん
21/10/19 06:24:04.50 uZ+aFQr8.net
曜日判定は開始年のみで残りは閏年判定とインクリメントだけで良かったね

327:デフォルトの名無しさん
21/10/20 01:31:42.75 3o6derLl.net
>>313
勘違いしてるぞそれw

328:デフォルトの名無しさん
21/10/21 02:55:37.46 47mGjMvV.net
>>316
ぶ、ぶんすうにはなっているとおもうんだ

329:デフォルトの名無しさん
21/10/21 03:09:36.20 47mGjMvV.net
>>276
2だけ
Kotlin
URLリンク(paiza.io)

330:デフォルトの名無しさん
21/10/21 12:46:05.31 TQQGYYBP.net
>>306
ちょっとやってみたけど奇数のものは見つけにくい
47ともなると相当大きくなりそう

331:デフォルトの名無しさん
21/10/21 13:16:40.90 LMXfXe/q.net
x^4+y^4+z^4=a^4
が成り立つ値
x,y,z,a
を求めよ。

332:デフォルトの名無しさん
21/10/21 16:28:37.98 s+STdMnX.net
0

333:デフォルトの名無しさん
21/10/21 18:41:27.23 LMXfXe/q.net
>>320
値は2以上の自然数ね

334:デフォルトの名無しさん
21/10/21 18:46:20.17 1lKVQwqU.net
1も入れてあげて

335:デフォルトの名無しさん
21/10/21 20:52:10.29 I05C+tHT.net
>>310 octave
URLリンク(ideone.com)
year = @(y) cell2mat(arrayfun(@(m) {calendar(y, m)'(:)}, 1:12));
years = @(ys) cell2mat(arrayfun(@(y) {year(y)(:)'}, ys)');
ys = 1970:2369;
[c, ~, ic] = unique(years(ys), 'rows');
c, arrayfun(@(uic) {mat2str(ys(ic == uic))}, unique(ic))

336:デフォルトの名無しさん
21/10/21 23:31:25.95 s18jC5Va.net
URLリンク(ja.m.wikipedia.org)

337:デフォルトの名無しさん
21/10/22 01:42:42.81 ZLeZZO3L.net
>>310
Kotlin
URLリンク(paiza.io)
肝心な事はライブラリに任せ、自分でやってるのは振り分けだけ。

338:デフォルトの名無しさん
21/10/22 02:39:08.04 K3be3gm5.net
>>306
n=2~10、とりあえず


339:値だけ 1/2、5/(3√2)、1/√2、25/(3√2)、5/2、(25√221)/(11√2)、√(5/2)、65/(3√2)、25/2



340:デフォルトの名無しさん
21/10/22 14:09:38.24 77+/GwrE.net
>>310
haskell
URLリンク(ideone.com)

341:デフォルトの名無しさん
21/10/22 21:06:26.88 ernPiDca.net
>>306
最小かどうか知らんけど
いっこ見つけたよ
半径おおよそ10万
URLリンク(www.wolframalpha.com)
この数を上限としてループ回したらどうか

342:デフォルトの名無しさん
21/10/22 23:54:51.41 7DKt7uEz.net
"最小"である事を数学的に証明出来なければ最小であるとは言えないと思うのだが最小である証明って出来るの?
証明方法あるなら是非教えて頂きたいのだがちょっとスレチかなぁ?

343:デフォルトの名無しさん
21/10/23 01:17:25.17 BHiRdnVn.net
この問題の場合は
可能性を総当たりでつぶしていく方法があるから
計算機科学的にいえば「証明可能」だと思う
現実的な時間で解が求まるかどうかはまた別の話

344:デフォルトの名無しさん
21/10/23 04:37:00.63 gSawFHHH.net
いやいや連続体濃度の可能性を総当たりできるわけないじゃん

345:デフォルトの名無しさん
21/10/23 05:04:07.49 xy2o1DGT.net
特定の3点を通る円は1個だから
上限があれば有限個の検索で済む

346:デフォルトの名無しさん
21/10/23 09:08:29.52 lhX1R4Wb.net
[0,1)×[0,1)に中心があり半径が801125/√72=94413.486...の円に入る円の格子点の数はおよそ2.8×10^10個
そこから3つ選んでルーブ回すとループの回数は2.1×10^31回
1秒で10^10回ループ回せたとして10^20秒の桁
何兆年もかかる

347:デフォルトの名無しさん
21/10/23 09:46:56.70 LnA0RHk6.net
総当たりじゃないうまい方法を考えなさい
ってのがこのスレ的な話題なんじゃない?

348:デフォルトの名無しさん
21/10/23 09:55:07.00 HC6G+u/J.net
数学の人には渋い顔されるだろうけど
コンピュータだったらまずは総当たり作ってみてそこから改良してくの全然ありだと思う

349:デフォルトの名無しさん
21/10/23 12:38:00.73 8QkqEddx.net
これはもしかして座標の問題ではなく円の性質では?

350:デフォルトの名無しさん
21/10/23 13:51:05.91 lhX1R4Wb.net
イヤ、もしかしても何も出題者も答え持ってないやろ

351:蟻人間
21/10/23 14:11:15.10 HSZ38wuD.net
お題:
(1) 数当てゲームを作成せよ。コンピュータ側は1~100の自然数をランダムに選び、ユーザ側は、当たるまで繰り返し数を選ぶ。コンピュータは当たれば「当たり!」、外れれば「それより大きいです」か「それより小さいです」を出力する。
(2) そのゲームに、ユーザー側としてAIが介入可能な入出力インターフェースを追加せよ。出力: 数、入力: コンピュータからのメッセージ。
(3) 二分探索アルゴリズムによって、数当てゲームのAIを完成せよ。

352:デフォルトの名無しさん
21/10/24 00:22:45.96 Gedozjyx.net
AIとは何か?

353:デフォルトの名無しさん
21/10/24 00:39:25.83 8hWi5KuQ.net
うわー難しいこと聞いてきた。

354:蟻人間
21/10/24 01:17:46.48 LOuNpAsp.net
artificial intelligence

355:デフォルトの名無しさん
21/10/24 05:13:25.20 H3SbS1d2.net
Application Interface

356:デフォルトの名無しさん
21/10/24 08:59:19.22 iNEhflB6.net
X^2 + Y^2 = N の整数解は、Nの素因数分解からわりと簡単に求められる
X = cx +a , Y = cy + b として、拡大縮小+中心移動したとき解個数がどのように


357:変化するのか、わかればいいのだが N = 2^(n0)・p1^(n1 - 1)・p2^(n2 - 1)・・・・・(pi ≡1 mod 4)と素因数分解されたとすると 解個数は 4 ・ n1 ・ n2 ・・・・・ X^2 + Y^2 = (X + iY)(X - iY)と、 4k+1型素数はたとえば5 = (2+i)(2-i)のように分解できることから最初の式の解も具体的に求められる



358:デフォルトの名無しさん
21/10/24 09:25:46.21 iNEhflB6.net
たとえば >>329の右辺の数 801125 = 5^3×13×17×29 なので
a=1+2i、 b=2+3i、 c=1+4i、 d=2+5iとおくと 5=a~a (~aは複素共役)等になる。
X^2 +Y^2 = 801125^2 の解個数は756=4*7*3*3*3
z=a^i (~a)^(6-i)とおくと、z~z = 5^6 等から複素数の積の計算して解も求まる

359:デフォルトの名無しさん
21/10/24 09:57:22.23 mn+DQKnt.net
>>344
それで中心と半径が与えられたときのってる格子点の数が簡単に求められたとしても、“最小のR”を求めるのにそこまで役に立つわけやないやろ
中心が( -a/N, -b/N ), 半径√Rとして格子点が満たすべき方程式は
( Nx + a )^2 + ( Nx + b )^2 = N^2R
だから求める格子点の個数は方程式
u^2 + v^2 = N^2R, ‥①
u ≡ a ( mod N ), v ≡ b ( mod N )‥②
を満たす(u,v)の数になる
となると格子点の個数が例えば47とか抑えられててもN^2Rがの可能性が直ちに抑えられるわけではない、N^2Rがメチャクチャ大きくてもa,bをうまく選べば①、②を満たす整数解はさほど多くなくなる可能性が出てくる
結局
「Rは小さい(最小値求めてるので)、①,②を満たす整数解の個数は少ない(問題文で与えられてる条件)」
を科してもNの上限が直ちに決まったりはしない

360:デフォルトの名無しさん
21/10/26 13:24:29.03 7IK8iIce.net
Nの上限はRで押さえられるだろ

361:デフォルトの名無しさん
21/10/26 20:49:34.15 mZlCCyni.net
>>347
何故?

362:デフォルトの名無しさん
21/10/26 21:57:54.63 YDtvu9T4.net
( Nx + a )^2 + ( Ny + b )^2 = R の解個数は
X^2 + Y^2 = R の解個数以下ということでは?

363:デフォルトの名無しさん
21/10/26 22:04:08.64 YDtvu9T4.net
Rを十分大きくとって、X^2 + Y^2 = R の解個数が1万だとしても
( Nx + a )^2 + ( Ny + b )^2 = R  で 1万以下のすべての解個数を作りだせるかというと間違ってそうだからな
>>346はそういうことだろ?
9997の解個数を得ようとすれば、X^2 + Y^2 = R の解個数はたとえば100億でないと無理かもしれない

364:デフォルトの名無しさん
21/10/27 02:27:08.98 zvgRqB+7.net
>>306
n=47の記録を更新したので載せとく
URLリンク(www.wolframalpha.com)

365:デフォルトの名無しさん
21/10/27 12:58:14.54 QXFcz/ph.net
お題
デスクトップにフォルダーA,B,C,D,E,F,G,H,I,J,K,Lがある。
D&Dで一つのフォルダーにまとめる。それぞれのフォルダーの
パス名の組み合わせは何通りあるか数える
(デスクトップはルートフォルダーみたいに表記してよい)
例:
A,Bの場合
1./A,/A/B
2./B,/B/A
A,B,Cの場合
1./A,/A/B,/A/C
2./A,/A/B,/A/B/C
3./A,/A/C,/A/C/B
4./B/A,/B,/B/C
5./B/C/A, B,/B/C
6./B/A,/B,/B/A/C
7./C/A,/C/B,/C
8./C/A,/C/A/B,/C
9./C/B/A,/C/B,/C
できれば、SQLのみを使ったもの

366:デフォルトの名無しさん
21/10/27 13:29:20.74 iuhktxGB.net
悪問


367:デフォルトの名無しさん
21/10/27 14:15:39.88 t2iD5tO8.net
ハノイの塔と同値

368:デフォルトの名無しさん
21/10/27 16:59:18.79 M8/Dvct0.net
>>350
違う
>>346で言ってるのは
問題 円上の格子点の数がちょうど47個である円の半径の最小値を求めよ
においてガウス整数�


369:ツの因数分解の話を使って 問題 方程式 u^2 + v^2 = N^2R, ‥① u ≡ a ( mod N ), v ≡ b ( mod N )‥② を満たす(u,v)の数が47であるRの最小値を求めよ という問題に還元したとして、“解の個数が47個”という条件を利用してもNの上限を決めることができないということ なんかの理論なり勘なりでR<10万とか決まってもそれによってNの上限が決まったりはしない N=一兆くらいで素因子を山のように持っててもa,bの選択によっては結局解の個数が47個という可能性が残るからガウス環の因数分解の理論など使っても“解の最小値”を調べるのに対して役に立たないと言ってる 大体この手の問題は 「なんでもいいから一つ構成する方法探せ」 と 「解の最小値求めよ」 では問題の性格がまるで違ってくる 単に解構成するだけなら色んな方面の色んな知識使って色々なアプローチが出てくるけど、「最小値求めよ」にした途端に本質的に総当たりしか無くなってしまうことが多い まぁ計算機持ち出す場面って大概それしか方法がないときだからそれはそれでいいんだけど、このスレででかい数字で総当たりしか手がない問題で、とても個人所有のパソコンでは手が出ない領域の問題出されると途端にレス止まってドッチラケになってしまう



370:デフォルトの名無しさん
21/10/29 12:54:37.67 6VyB6+e8.net
もとの問題が解けるかは別にして、
任意の自然数a,b,cdに対して
(cx+a)^2 + (cy+b)^2 =d
の解個数を高速に求めるかが大事とおもうが

371:デフォルトの名無しさん
21/10/29 13:23:14.96 hHWRsPnj.net
お題: 重力加速度が1、空気抵抗が0.2、ボールの質量が1、ボールのベクトルが(x, y)=(3, 1)だったとき
高さHからボールを落とした場合のボールのバウンド回数を算出しなさい

372:デフォルトの名無しさん
21/10/29 15:02:23.80 gWArxJUi.net
抗力
URLリンク(ja.m.wikipedia.org)

373:デフォルトの名無しさん
21/10/29 16:10:26.75 1t708P0q.net
バウンド回数って無限回

374:デフォルトの名無しさん
21/10/29 16:10:46.78 1t708P0q.net
になるんじゃないの?(途中で書き込まれてしまった)

375:ハノン
21/10/29 18:49:54.55 3iG6tyfE.net
>>360
そうそう、収束値を求めるのなら、バウンドしなくなる点の発射点からの距離にしたほうがいいのでは?
つゼノンのアキレスと亀のパラドックス

376:デフォルトの名無しさん
21/10/29 18:58:39.05 q+AKOZXy.net
てか空気抵抗が0.2って>>358の公式における何が0.2なん?
床での反射は完全弾性衝突なんやろな
空気抵抗は考えるのに衝突時のロス考えんのはなんだかなぁだけど、そこはともかく“空気抵抗0.2”をどう立式すればいいのか調べてもわからんのだけど

377:デフォルトの名無しさん
21/10/29 19:45:45.04 ZtEOqLMN.net
>>357
エントロピーを考えさせたいのなら粘性とかの情報が足りないし、
打ち切り誤差を考えさせたいのなら精度の情報が足りない。

378:デフォルトの名無しさん
21/10/29 20:47:20.06 II19q38d.net
単位がないからどうとでも答えられるわ

379:デフォルトの名無しさん
21/10/29 21:49:53.51 1t708P0q.net
単位とかの問題ではないと思う

380:デフォルトの名無しさん
21/10/30 09:59:33.72 gRDEN/XN.net
バウンド回数をHとgで表せっていう意味ならそれなりの数式は出るだろうけど
Hに関わらず無限大だろうってのが答え

381:デフォルトの名無しさん
21/10/30 10:52:04.30 jJEez0C7.net
終了


382:デフォルトの名無しさん
21/10/30 11:45:13.50 a9WSKAoR.net
GUI造るお題もアリ?

383:デフォルトの名無しさん
21/10/30 11:48:13.10 B9HlTkoz.net
ダメってことは無いんじゃない?

384:デフォルトの名無しさん
21/10/30 17:28:39.70 0q4JizrL.net
GUIでも何でも良いけどGUIはこちらで試す時に面倒。というかGUIだと多分やらないでソース眺めてフーンとなるぐらいかな。
ソースをコンパイル、実行して試せるようなサイトでGUIも出来るような所があれば良いんだけどね。そういう所ある?

385:デフォルトの名無しさん
21/10/30 17:30:20.58 Zd9OnruO.net
今までは実行してたのか?
暇人

386:デフォルトの名無しさん
21/10/30 17:41:23.59 BwSV3hMk.net
Pythonとか汎用性の高そうなGUIにしとけばいいかと、どれが一番いいかはしらんが

387:デフォルトの名無しさん
21/10/30 18:14:32.40 Zd9OnruO.net
PythonにGUIなんか無いぞ

388:デフォルトの名無しさん
21/10/30 18:18:52.22 0SZBWJnV.net
「Pythonとか汎用性の高そうなGUI」ここまでで大爆笑取れるな

389:デフォルトの名無しさん
21/10/30 19:19:30.18 H3Il6ZC9.net
>>374
お前面白くない

390:デフォルトの名無しさん
21/10/30 19:30:41.93 BwSV3hMk.net
GUIライブラリのことだが
PythonでGUIライブラリはどれがおすすめ?
Tkinter
「Tkinter」はPythonに標準的に組み込まれているGUIライブラリです。
シンプルな文法と起動の速さが評価されており、Pythonにおけるもっとも基本的なGUIライブラリとしての立ち位置を築いています。
Kivy
近年、PythonのGUIライブラリの中でもっとも人気が高いものが「Kivy」です。
Kivyは、PythonでGUIのプログラムを作るためのオープンソースのライブラリで、Android、iOS、Linux、MacOS、Windowsなどの多くのOSで動作するため、汎用的に利用することが可能です。
KV言語というGUIのレイアウトを作成する言語が用意されており、直感的な記法で簡単にレイアウトを指定できるのが特徴です。
PyQt
「PyQt」は、Pythonを使ってGUIアプリケーションを作るためのフレームワークの1つです。
多くのソフトが作られており、比較的モダンな設計と、GUIのデザインを美しく作りやすいことが評価されています。
wxPython
「wxPython」は「wxWidgets」という「C++」と書かれたクロスプラットフォームGUIツールキットがあり、wxPythonはそのPythonバージョンです。
wxPythonは洗練されたAPIと豊富なライブラリが特徴であり、安定した動さが評価されています。
URLリンク(techplay.jp)

391:デフォルトの名無しさん
21/10/30 19:39:14.98 BwSV3hMk.net
こんなのがあったんだな

【Python】ttk:tkinterと比べた各ウィジェットの外観と機能面の違い
よりオシャレでモダンなGUIアプリを作成するならttkを使うのがお勧めです。
商用向けにGUIアプリの開発を進めている方や、社内向けアプリの場合でもユーザーインターフェースを良くしたい方は必ずチェックしておいてください。
URLリンク(office54.net)

Tkinterで使われるttkって?Tkinterとの違いを交えて徹底解説!?
今回はTkinterで使われるttkに関して、Tkinterとの違いを交えて徹底解説いたします。そもそもttkとは何か知りたい、Tkinterとttkの違いを学びたい方へおすすめです。
URLリンク(kuroro.blog)

392:デフォルトの名無しさん
21/10/30 19:52:06.16 nIglmucm.net
お題:群論・有限群の分類
正の整数 n を与えたとき n を次数とする有限群のすべてを順次出力せよ。
ただしすでに出力された群の「準同型」は出力してはならない
n 次の有限群の要素は {k|k∈N, 1 <= k <= n} で表現せよ
この作業を「有限群の分類」と称するが、n をどこまで大きくできるか、各自の環境で試みよ
期限:2022年4月1日
準同型の定義は適切な参考書…①を参照さられた�


393:「、が、以下に概略を記述する 例えば 2 次の有限群として G1= 1 2 2 1 およびG2= 2 1 1 2 があるが、この二つは  「G1の 1 を 2 に置き換え、G1の 2 を 1 に置き換えて新たなG を作る」 というG1→G の変換 f によって G=G2 となる、すなわち f(G1)=G2 このような変換 f が存在するとき、G1、G2 は準同型であるという ①:「ガロア理論の頂を踏む」石井俊全/ベレ出版 2013年



394:デフォルトの名無しさん
21/10/30 19:55:13.98 Zd9OnruO.net
昔授業でやった
手作業で分類

395:デフォルトの名無しさん
21/10/31 01:34:58.60 hGI7wBpw.net
GUI は皆が知っている、HTML, CSS, JavaScript だけ
それ以外は、ダメ

396:デフォルトの名無しさん
21/10/31 11:02:55.76 dKAtRzTx.net
GUIで出題すると仕様が発散する

397:デフォルトの名無しさん
21/10/31 11:39:19.72 2xPpBnWz.net
他の人の答え見ても走らせられないからおもんない

398:デフォルトの名無しさん
21/10/31 13:24:46.17 +JknqnCD.net
>>380
Win32, Androidが抜けてる

399:デフォルトの名無しさん
21/11/01 00:58:32.75 6HuVbq6K.net
>>371
>>1に書いてあるサイトだとブラウザで開くだけで実行されるじゃない。

400:デフォルトの名無しさん
21/11/04 13:45:51.05 D1F18vfo.net
お題:GUIのカウントチャレンジを作れ
ボタンを押すとタイマーがスタート
もう一度ボタンを押すとタイマーがストップ
タイマーが10秒きっかりだったら「You win!」と表示
それ以外は「You lose!」と表示
現在のタイマーの値は表示しない

401:デフォルトの名無しさん
21/11/04 13:55:48.22 iRkMc3Gk.net


402:デフォルトの名無しさん
21/11/04 19:19:30.28 kwdxsWVQ.net
>>385 Ruby & MS-Windows
URLリンク(ideone.com)

403:蟻人間
21/11/04 19:45:56.66 HOYEg+v3.net
お題: 与えられたn個の英単語群をすべて連結したクロスワードを作成できるか否かを判定せよ。クロスワードのサイズは自由とする。
入力例1: password, sword, animal, living
出力例1: すべて連結可能です。
入力例2: apple, zoo, grape
出力列2: 連結できない単語「zoo」があります。

404:デフォルトの名無しさん
21/11/04 21:03:28.99 SLvu/urJ.net
はい次

405:蟻人間
21/11/04 22:30:42.52 HOYEg+v3.net
>>386>>389
外野は試合の邪魔しないで

406:デフォルトの名無しさん
21/11/04 22:33:47.55 SLvu/urJ.net
>>390
お 前 は 内 野 じ ゃ ね え よ

407:蟻人間
21/11/04 22:35:04.55 HOYEg+v3.net
>>391
くやしいの?

408:蟻人間
21/11/04 23:12:02.85 HOYEg+v3.net
現実の問題は競プロの問題よりも難しいかも知れない。教科書に書いてないような解決策を要求される。
競プロの問題が欲しいなら、ここよりも競プロへ行ってくれ。ここはそういう場所ではない。

409:蟻人間
21/11/05 18:24:25.98 lMRXWOVz.net
数学の組合せの問題か。まず文字の組合せから。ある単語Xのすべての文字が他の単語にないならその単語Xは連結ではない(自明)。ひとつのセルは二重に交差点になることはできない(自明)。
ある単語Xが連結でなければ、単語X上の任意の文字位置は交差点にはならない。

410:蟻人間
21/11/05 18:33:11.14 lMRXWOVz.net
次はクロスワードの組合せ。有限でサイズ変更可能な二次元配列によりクロスワードの盤を再現する。各要素はアルファベットか黒マスかハテナ(?)である。
文字の組合せにおいて最も接続数の多い単語を最初に盤の真ん中に置く。さらに単語の両端に黒マスを置く。次に接続数の多い単語と既に盤に置かれている単語の交差点を考えるわけだが、
交差点の位置により場合分けすると考えやすい。

411:蟻人間
21/11/05 18:35:46.93 lMRXWOVz.net
そして配置のすべての組合せを再帰により網羅する。交差点が見つからない単語があれば失敗。というわけだ。コーディングに入ろう。

412:デフォルトの名無しさん
21/11/06 03:47:56.08 8BMCwFko.net
>>385
Kotlin
URLリンク(paiza.io)
GUI は java.awt ライブラリを使うように書いてある。
当然の事ながら、paiza.io のサイト上では動かない。
動かしたい人は IntelliJ Idea で Kotlin のプロジェクトを作ってソースコピペして実行させるか、
またはコマンドライン環境で kotlinc コマンドでコンパイルして kotlin コマンドで実行する。

413:蟻人間
21/11/06 23:49:16.09 xVqAQy13.net
交差点になり得るセルの位置を記録して可能ならばマイナス方向にもサイズを拡張すべきことがわかった。

414:デフォルトの名無しさん
21/11/07 15:24:13.73 qfuan/oU.net
document.querySelectorAll('span.name').forEach(e => {
    if(e.innerText.indexOf('蟻人間') >= 0){
        e.parentElement.parentElement.style.display = 'none';
    }
});

415:96
21/11/08 17:48:34.31 +3VBQOCX.net
>>378
これか…
URLリンク(math.jp)
プログラム化する以前に、解法を理解・考えることが難しいお題だな

416:蟻人間
21/11/08 22:31:17.08 8X+AtsKK.net
エアプレイじゃなくてちゃんとやっているぜ。
URLリンク(github.com)

417:デフォルトの名無しさん
21/11/08 22:34:01.71 sIrE8Ymr.net
>>401
クソじゃん

418:蟻人間
21/11/08 23:09:09.26 r2YqBk6E.net
>>402
どの辺が●ソか解説よろ。

419:デフォルトの名無しさん
21/11/08 23:19:34.67 sIrE8Ymr.net
金を払うなら教えてやってもいい

420:蟻人間
21/11/08 23:25:16.81 r2YqBk6E.net
>>404
銀行振込3000円でいいか? メールで連絡よろ。
katayama.hirofumi.mz@gmail.com

421:蟻人間
21/11/08 23:35:25.59 r2YqBk6E.net
どうせ
printf使うなstd::cout使え、だろう?

422:蟻人間
21/11/08 23:41:38.46 r2YqBk6E.net
確かにここはstd::pairじゃない方がいい。
他には?

423:蟻人間
21/11/08 23:46:44.17 r2YqBk6E.net
ヘッダーオンリー・テンプレート使用はバイナリサイズが大きくなりがちだから避けるべき。それから?

424:蟻人間
21/11/08 23:48:18.18 r2YqBk6E.net
なるほど。ありがとう。

425:デフォルトの名無しさん
21/11/08 23:49:02.87 sIrE8Ymr.net
どういたしまして。
じゃあ、振り込み宜しく

426:蟻人間
21/11/08 23:51:18.07 r2YqBk6E.net
チャリンチャリン。ガシャ。振り込み完了。

427:蟻人間
21/11/08 23:57:31.64 r2YqBk6E.net
std::promiseを使うべき。だがやり方がわからん。

428:蟻人間
21/11/09 00:09:04.79 lgtaApb2.net
お題: 計算時間が予測できない時間のかかる計算について、複数スレッドを立ち上げていずれかのスレッドで答えがセットできたか、キャンセル操作があれば、スレッドを終了して可能ならば答えを取得する。スレッド開始と終了、答えに対してメッセージを出力せよ。
言語: C++11以降 std::threadとstd::promise使用。

429:デフォルトの名無しさん
21/11/09 00:58:40.89 coKFHwlH.net
いらっしゃいマシーンのプロミス

430:96
21/11/09 03:16:48.15 Fkau/hlA.net
OpenMPやithreadじゃだめなのかよ

431:デフォルトの名無しさん
21/11/09 04:39:18.77 qOqV7S2Y.net
お題で言語まで指定されんの?宿題スレに貼ってくれば

432:デフォルトの名無しさん
21/11/09 16:49:52.57 EFAwjHPG.net
もうすぐポッキーの日
[お題] 人口合計で1がらみの数字遊び
URLのページに都道府県別の人口が載っている。
 URL: URLリンク(ideone.com)
 今回使用するのは、2020/10のデータ
 同じ県は一回のみで、異なる県を 11 県選らぶ。
 (単純な選び方は全部で 47C11 = 約174億通り)
 選択した11県の人口合計を 111111 (11万1111) で割った時、
 余りが 1111 になるのは何通りあるか?
 
 また、その条件で(剰余でなく生の)のべ人口合計は何人か?
※一発正解問題、実行時間2秒程度。
※ちなみに 2015/10データだと 156561 通り(のべ 4656362060856 人) だった。

433:デフォルトの名無しさん
21/11/09 21:20:25.70 l7cbb8DO.net
>>417
URLリンク(ideone.com)
Cだけど遅い

434:デフォルトの名無しさん
21/11/10 00:24:34.22 BKretcyA.net
111111×11の配列のやつやな

435:デフォルトの名無しさん
21/11/11 01:43:34.66 rg6AJXmO.net
侍エンジニアリングつーサイトの講師やりませんか?というお誘いが来た。
下準備が結構必要っぽいのに時給は生徒と応対している時のみの2000円/hだそうだ。
結局時給1000円くらいやん。
ふざけとるわ。

436:デフォルトの名無しさん
21/11/11 09:52:21.62 SpIFedoW.net
生徒と応対して連絡先交換
あとは中抜き回避で青天井

437:417
21/11/11 15:33:20.12 226d0X5M.net
>>417
回答者(>>418)が言うところの"遅い解法"ががほぼ想定解。
 URLリンク(ideone.com) 下部に追加記入
解法については、"部分和問題 数え上げ"でググって調べて

別解としては早い言語なら、さらに遅い"半分全列挙"でも間に合う。
(大雑把に(24*2^24)*2 <1億なので、c++で試したら1秒強だった)

438:デフォルトの名無しさん
21/11/11 16:01:48.26 aldiYpmV.net
>>422見てなんで>>418が遅かったか分かった
無駄な掛算やってたからだった
配列の並び直したら4倍速くなった
URLリンク(ideone.com)

439:デフォルトの名無しさん
21/11/11 16:02:43.51 aldiYpmV.net
掛算じゃなくてメモリの連続性かも
両方かな

440:蟻人間
21/11/11 21:32:16.11 3Uao5x0L.net
お題:与えられたテキストの中のURLをすべて置き換える。
https://【...】

URLリンク(jump.5ch.net)【...】

441:デフォルトの名無しさん
21/11/11 21:50:43.06 PBlMMjPy.net


442:デフォルトの名無しさん
21/11/11 21:53:39.37 39WaJBCl.net
>>425
URLとなる文字列の定義も知らねえで糞みたいな問題出すなよダニ野郎

443:蟻人間
21/11/11 21:57:33.27 CgY0hHY1.net
>>427
URLにマッチする正規表現使えばええやろ、チャチャとやれよ。

444:デフォルトの名無しさん
21/11/11 21:58:05.03 39WaJBCl.net
URLにマッチする正規表現(笑)

445:96
21/11/11 23:57:38.62 JHz34AMz.net
>>425 Perl5、たまにはお相手して進ぜよう。5chの仕様に従うと↓こう


446:だと思うが… $uri = 'https://www.google.com/search?client=firefox-b-e&q=%E8%9F%BB%E4%BA%BA%E9%96%93+%E3%83%8F%E3%82%B2'; use URI::Split qw(uri_split uri_join); @a = uri_split($uri); $a[1] = 'jump.5ch.net'; $a[2] = '/'; $a[3] = $uri; print uri_join(@a), "\n";



447:デフォルトの名無しさん
21/11/12 20:37:34.22 Y4pYQLN1.net
”2021”というフォルダがある
"2020"というフォルダもある
 :
"1950"というフォルダもある
そしてそれぞれに"01"~"12"のサブフォルダがあって
そしてそのそれぞれに"01"~"31"というサブフォルダがあって
更に"00"~"23"という・・・・
つまり、1時間ごとのフォルダがあって
そこには多くのファイルが詰まっている
そのファイルのタイムスタンプに変化があったら
「どこのファイルが書き換えられたぞ」と検出するプログラムを作りたい
片っ端からタイムスタンプを調べるしかないのか
これはファイルシステムの問題でしょうが
なんとか、前回調べてから変化があったか、短時間で検出できる方法はありませんか
ファイルに変化があったら、フォルダのタイムスタンプを変えてくれればいいんだけどね

448:デフォルトの名無しさん
21/11/12 21:45:17.50 gsBkkV8P.net
そういう検出機能はOSかハードウェアかについてなかったか 忘れたが

449:デフォルトの名無しさん
21/11/12 21:49:29.72 gsBkkV8P.net
NTFSの USN とは?
USN ジャーナルとは
NTFSのUSN機能とはNTFSボリュームに対しての変更の記録です。
Cドライブ、Dドライブ、Eドライブごとなど、ドライブごとに加えられた変更を記録したものです。
USNとはUpdate Sequence Number Journalの略称です。
主に以下の目的で使用されます。
・FRS(File Replication Service)によるファイル複製時の差分洗い出し。
・スナップショットバックアップ時の差分洗い出し。
・ウィルス対策ソフトによるファイル検査。
・インデックスサービス向け。
URLリンク(tooljp.com)

450:デフォルトの名無しさん
21/11/12 22:31:42.38 M7lyd7nj.net
Ruby では、文字列の中から、URL を抜き出す関数が非推奨になった。
頻繁に規格が変わるからかな?
正規表現でも多分、何万行も掛かる。
作るのに10年ぐらい掛かるので、誰も作らない
今あるものでも、正しく判定されるかどうか、分からない

451:デフォルトの名無しさん
21/11/12 22:39:57.54 M7lyd7nj.net
>>430
5ch のバグで、
そのURL をプログラム板全体で見た時は、&q とつながっているのに、
個別のスレッドで見ると、&;q と、&の直後に、;が入って、
リンクが&までになってしまう

452:デフォルトの名無しさん
21/11/13 02:42:42.42 p75HzwR9.net
>>433
ドライブごとに加えられた変更がログに保存されているとは知りませんでした
データドライブに分けているので、ログから探すのも速いかもしれません
ありがとうございました

453:デフォルトの名無しさん
21/11/15 00:16:09.47 Xr7xQZWT.net
お題: JSON形式のテキストをXML形式のテキストに変換しなさい

454:デフォルトの名無しさん
21/11/15 21:06:19.54 L/+dWr8R.net
>>437 C++
URLリンク(ideone.com)

455:デフォルトの名無しさん
21/11/23 21:56:09.59 WrxNeBf5.net
age

456:デフォルトの名無しさん
2021/11/24


457:(水) 11:45:59.40 ID:kXzWnsgO.net



458:ハノン
21/11/24 20:41:27.64 CmhCtKru.net
>>440
もう codepad はおしまい、codepad にアップした私のコードも永遠に失われました…

459:96
21/12/02 04:03:51.64 EE6BdDDo.net
元のソースをローカルに保存しておかなかったのか

460:デフォルトの名無しさん
21/12/02 12:54:02.17 adrEDszf.net
短いもんだから直接打ち込んじゃったんじゃないかな。
そして消滅。

461:デフォルトの名無しさん
21/12/02 16:48:13.78 BMPRSKoA.net
>>442
デスクトップで書いたものはローカルのどこかに残っている(と思う)
ノートで書いたものはノートPCごとどこかにいってしまった…
いや、まあ、最初から書き捨てでしたけど、惜しいと思うものも多少ありますね

462:96
21/12/02 21:30:16.60 m0u4nXXp.net
いま
URLリンク(codepad.org)
復活してない?
サンプルURLとして前々スレの過去の回答
プログラミングのお題スレ Part18
スレリンク(tech板:174番)
>174 名前:デフォルトの名無しさん[] 投稿日:2020/08/04(火) 19:24:17.96 ID:lImhU2CT
> >>173
> あーアホだったw
> タブ消去の仕様だとPythonだと分けわからんことになるなw
> ↓貼り直した
> URLリンク(codepad.org)
> ※会員未登録の為、一定期間後に自動消去
も表示されたし。
保持しておきたいcodeがあれば今のうちにsaveするか、
Internet archiveに記録しとくのも手だよ。

463:デフォルトの名無しさん
21/12/08 14:07:00.92 Bws6ftLO.net
お題が出なくなったので全く実用性がないと思われる頭の体操的なやつを一つ。
お題: 与えられた数値の配列の 1 になっているビットをカウントする。
例えばC言語で unsigned char の配列とか使って、処理する関数はポインタで渡された所から何要素みたいに指定されるようにする。。
それで例えば 0xde, 0x96 (11011110, 10010110) なら答えは 10。

464:デフォルトの名無しさん
21/12/08 17:14:42.64 vDqYU7cZ.net
.replace("0", "").length

465:デフォルトの名無しさん
21/12/08 17:44:20.69 /InaUbpT.net
お題: 日付が与えられるので4月ならtrueを出力しなさい
< 2021/04/01
> true
< 04/01
> true
< 2021/04
> true
< 2021/05/01
> false

466:デフォルトの名無しさん
21/12/08 19:09:00.93 nFeiLLyh.net
>>446
最適なコードが環境に大きく依存するからなあ
シフトの速度とか専用命令有無とか
あまり良いお題じゃないし荒れそう

467:デフォルトの名無しさん
21/12/09 05:41:43.04 8cQ3P39Q.net
英式 1/4/2021
米式 4/1/2021

468:デフォルトの名無しさん
21/12/09 08:53:58.33 FBbu4srV.net
日 21/04/01
米 04/01/21
欧 01/04/21
年2桁で入り乱れたら更にわけわかめ

469:デフォルトの名無しさん
21/12/09 13:38:41.08 ZoIDn0OR.net
逆に、年2桁の時は、
その数値で年月日が特定できるか問題があった。
02 12 29 --> 12年02月29日 と 29年02月12日 の2通りがある
02 13 29 --> 13年02月29日はないので、29年02月13日のみ

470:デフォルトの名無しさん
21/12/09 13:44:59.59 ZoIDn0OR.net
>>452
特定できるかどうかだけならいいが……
反例を間違った 02 12 29 3通りある

471:デフォルトの名無しさん
21/12/09 14:42:16.44 b/vm8aBu.net
そういえば食品の賞味期限がど�


472:、読んだらいいか分からなかったことがあったなあ。 11/02/13 2013年2月11日なのか、それとも2013年11月2日なのか、まさか2011年2月13日だったりしたらどうしよう、みたいな。 普通に輸入されているものなら日本語ラベルがあるから分かるだろうけど、友達が現地のお土産屋で買ってきた お菓子みたいなものだとそのまんまだったりする(まあ、アメリカかアメリカ以外かで考えればだいたいは大丈夫 なのかも知れないが)。 日本の元号みたいな独自年号まで使われているのが混在していたら余計に分からないよな。今の日本では あまりないだろうけど昭和の頃はあったような気がするなあ。



473:デフォルトの名無しさん
21/12/09 22:53:27.33 93rp7Kwc.net
>>446 Ruby
p [0b1110, 0b1010111].reduce(0){|s, n| s + n.digits(2).count(1)}
# => 8

474:デフォルトの名無しさん
21/12/09 23:18:40.40 2ghuDZG2.net
>>446
URLリンク(ideone.com)

475:デフォルトの名無しさん
21/12/10 00:33:54.80 Uh57IFJZ.net
>>446
C
URLリンク(paiza.io)
入力を配列に入れてからカウントさせている。(uint32_t 型の配列)
カウント部分は>>456に似てる。しかし最初に引くのは思いつかなかった。

476:デフォルトの名無しさん
21/12/10 01:03:30.79 Uh57IFJZ.net
>>448
Perl
URLリンク(paiza.io)
年月日順で年がある場合は必ず4桁でなければならない。
4だけでも4月に判定されるが、まあいいか。

477:デフォルトの名無しさん
21/12/10 09:12:55.36 rDACCx1y.net
>>446
Haskell
sumCntBits = id
. length
. filter odd
. ( >>= ( takeWhile ( /= 0 ) . iterate ( flip div 2 ) ) )
main = do
print $ sumCntBits [ 0xde, 0x96 ]
print $ sumCntBits [ 0x12345, 0x6789a,0xbcdef ]
----
10
32

478:デフォルトの名無しさん
21/12/11 11:47:37.10 kARxTGM3.net
>>446 rust
URLリンク(ideone.com)
fn main() {
let f = |a: &[u32]| a.iter().map(|n| n.count_ones()).sum::<u32>();
println!("{}", f(&[0xde, 0x96]));
}

479:デフォルトの名無しさん
21/12/11 20:38:05.35 LF8J+dNV.net
>>446
Kotlin
URLリンク(paiza.io)
普通に作るのは出尽くした感があるのでちょっと変わったやり方にした。
入力から Int の List を作り、それを 1 ビットづつの Boolean のリスト(というか Iterator) にしてから true のみをカウントしている。

480:デフォルトの名無しさん
21/12/11 22:30:09.92 LvGvT7a1.net
>>446 octave
URLリンク(ideone.com)
f = @(a) sum(dec2bin(a)(:) - '0');
f([0xde 0x96])

481:デフォルトの名無しさん
21/12/14 17:40:23.45 kbrFI/m0.net
もうすぐ、2022年
[お題] 2022は"x3y1数"(造語)?
以下の二つを満たす正の整数を"x3y1数"と呼ぶ
・各桁の数値が、二種類のみの数字からなる
・上の二数の個数比は 3:1
 該当例:1112, 2212, 2022, 32222223, 999999999888
 ダメな例:2213(種類), 4444(種類), 33232(個数比), 0222(先頭ゼロ)
 整数A,Bが与えられる。A以上B以下の"x3y1数"はいくつあるか?
 制約: 0 < A <= B <= 10^18
1) 2923 3311 --> 8
  該当は [2999


482:, 3000, 3033, 3111, 3133, 3222, 3233, 3303] 2) 2021 77977796 --> 2022 3) 3000 6666566566566555 --> ? 4) 999999999889 1000000000000110 --> ? 5) 1 1000000000000000000 --> ? ※実行時間:上の5問をクエリーとし全部を2秒程度



483:デフォルトの名無しさん
21/12/16 03:59:00.84 p3cQ7gqk.net
お題:自分用double-double演算ライブラリ
最低限、通常のdoubleとの相互変換は可能であること。それに加えて、
1)加減算
2)加減算 + 乗算
3)四則演算
数字が大きいもの程上級者向けです。
演算子のオーバーロードなどは任意とします。

484:デフォルトの名無しさん
21/12/16 07:13:07.04 iDMhxZSI.net
>>464
多倍長演算ライブラリ、のことですか?

485:デフォルトの名無しさん
21/12/16 07:37:15.94 I1MQqoQo.net
>>465
アホ

486:デフォルトの名無しさん
21/12/16 20:36:30.04 teZIL57B.net
>>463 c
URLリンク(ideone.com)
・数字を数えて判定
・範囲内の全ての整数をチェック
・想像以上に遅くてダメだった
>>463 ruby
URLリンク(ideone.com)

487:デフォルトの名無しさん
21/12/16 20:39:48.12 iDMhxZSI.net
>>466
double の演算を自分で実装するという意味ですか?
sum(double, double)
diff(double, double)
mul(double, double)
div(double, double)
を自分で実装する、という話でいいですか?
あと double のフォーマットは IEEE754 でいいですか?

488:デフォルトの名無しさん
21/12/16 20:57:05.50 Y2CVy/MB.net
問題が説明不足では?

489:デフォルトの名無しさん
21/12/16 21:53:18.15 B45/3FnD.net
お題: テキストを読み込みそれをクリスマスツリーにして出力しなさい
クリスマスツリーに見えれば形は自由とする
入力
本日は良いお日柄ですね
出力
___本
__日は
_良いお
日柄です
___ね

490:デフォルトの名無しさん
21/12/16 22:32:14.13 iDMhxZSI.net
>>470
文字コードは何を仮定すればいいのですか?

491:デフォルトの名無しさん
21/12/16 22:34:05.93 B45/3FnD.net
>>471
UTF-8
日本語の扱いが難しい言語では英語のみの対応も良しとする

492:デフォルトの名無しさん
21/12/17 00:19:35.20 6Xap9yRK.net
>>470 octave
URLリンク(ideone.com)

493:デフォルトの名無しさん
21/12/17 04:20:32.14 QblDDO27.net
二種類のみの数字からなり個数比は 3:1
引数の範囲は 1-10^18 = 1001-9999999999998888(16桁)
以下の範囲に限られる
1000-9998
1000 0001-9999 9988
1000 0000 0011-9999 9999 9888
1000 0000 0000 0111-9999 9999 9999 8888
「二種類のみの数字からなる」を計算式で判定する方法ある?

494:デフォルトの名無しさん
21/12/17 05:36:58.41 5DT5Lvck.net
1([\d&&[^1]])\1{2} 最上位桁が比1
111[\d&&[^1]],11[\d&&[^1]]1,1[\d&&[^1]]11 最上位桁が比3
一般化 (\d)(?!\1)(\d)\2{2}|(\d)\1{2}(?!\1)\d|(\d)\1(?!\1)\d\1|(\d)(?!\1)\d\1{2}
4桁ならこれでもいいけど8桁以上になると複雑化するし
地道に数えるより 4の倍数桁,数字2種,比率1:3 のルールで生成する方が速そう

495:463
21/12/17 16:22:06.93 ssQAe3ef.net
>>463
 URLリンク(ideone.com)
 想定解は、事前に4,8,12,16桁の"x3y1"数を全列挙して作っておく。
 プログラミング的には、各言語の順列や組合せを使って、作れるだろう。
 (想定解例では組合せは2ベキとpopcountから作っている)
 「それは、全列挙数が小さいとわかっているからでは..?」に対して
 プログラムで出すのなら、雑に最も大きい16桁が4つあるとして計算
  10P2 * 16C4 * 4 < 70万 なので、全列挙可能
 まじめに計算すると 10P2 * (16C4 + 12C3 + 8C4 + 4C1) * 9 /10 = 167,832
 列挙済み�


496:ネらば、クエリー5件程度なら、16.7万*5 チェックで間に合う。  ちゃんとやるなら、ソートして二分探索すれば、数千単位のクエリーに対応できる。  (想定解例では後者でやっている)



497:デフォルトの名無しさん
21/12/17 20:17:58.00 gjoWWzuf.net
>>468
>>466

498:467
21/12/17 20:31:12.28 llvCqHRj.net
>>463 c
URLリンク(ideone.com)
・Ruby版の移植
・組み合わせの列挙方法は丸パクリ
・Ralph William Gosper Jr. 氏に感謝

499:デフォルトの名無しさん
21/12/17 23:34:29.99 llvCqHRj.net
>>463 c
URLリンク(ideone.com)
>>478から若干の整理
・組み合わせ列挙用バッファ廃止

500:デフォルトの名無しさん
21/12/18 16:20:56.22 b+l2srj7.net
>>464 C++
URLリンク(ideone.com)

501:464
21/12/18 16:29:44.66 ElKfLkKB.net
>>465
惜しい
>>468
IEEE754の倍精度(binary64)を整数演算で実装するのではありません。
binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが
double-double演算です。
Wikipediaの「四倍精度浮動小数点数」の項に少しだけ載ってますです。

502:デフォルトの名無しさん
21/12/18 16:50:56.06 XqEkP9jw.net
> Wikipediaの「四倍精度浮動小数点数」の項に少しだけ載ってますです。
一般的な用語じゃないんだから初めからこれ書いとけよ

503:465,468
21/12/19 00:01:36.35 eP9zS7VQ.net
>>481
I see.

504:デフォルトの名無しさん
21/12/19 21:10:50.32 wQiNAkF9.net
>>448 octave
URLリンク(ideone.com)

505:デフォルトの名無しさん
21/12/21 19:32:25.39 FcpxpynD.net
128ビットあるのに106ビットしか使わんの?
もったいなくね?

506:デフォルトの名無しさん
21/12/21 19:47:17.61 1JACqwUF.net
素人はだまってろ

507:デフォルトの名無しさん
21/12/21 21:17:48.02 cWMYIacO.net
>>485
もったいなよ
ただ、既存のdouble計算リソースが使えるという利点がある

508:デフォルトの名無しさん
21/12/22 04:27:38.39 5fCeD7fV.net
double-doubleはFMAがFMAとして役立つ数少ない用途だな
積和じゃなくて3個の和のfused命令も欲しくなる

509:デフォルトの名無しさん
21/12/23 07:32:47.64 Xd/JFvMa.net
お題: 1つの整数から規則性のある複数の整数を生成せよ
生成される整数は再現性がなければならない

510:デフォルトの名無しさん
21/12/23 07:37:01.70 GwakKG68.net
>>489
function f: Integer -> Integer{
return 0;
}

511:デフォルトの名無しさん
21/12/23 09:01:28.76 S2rGJ6tV.net
>>489 Ruby
def sequence( seed, number )
srand( seed )
Array.new( number ){ rand(100) }
end
p sequence( 123, 10 ) #=> [66, 92, 98, 17, 83, 57, 86, 97, 96, 47]
p sequence( 123, 10 ) #=> [66, 92, 98, 17, 83, 57, 86, 97, 96, 47]

512:デフォルトの名無しさん
21/12/23 19:26:32.49 KAa76evj.net
>>486 ocaml
URLリンク(ideone.com)
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []

513:デフォルトの名無しさん
21/12/23 19:27:19.05 KAa76evj.net
>>489 ocaml
URLリンク(ideone.com)
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []

514:デフォルトの名無しさん
21/12/24 17:16:46.67 Xt+LQVaD.net
>>488
Juliaのhypot()でもFMA使ってますです

515:デフォルトの名無しさん
21/12/24 22:51:57.83 Y/w+woHG.net
>>494
ただ積と和を1命令にして高速化しただけの積和
の効果だけじゃなくて
融合(fused)の効果が効く用途の話

516:デフォルトの名無しさん
21/12/25 03:52:36.33 62MjaTIU.net
>>489
Kotlin
URLリンク(paiza.io)
何も考えずにただ R


517:andom 使っただけ。



518:デフォルトの名無しさん
21/12/27 20:25:00.12 7ybeEGfH.net
[お題] 平均が2022な素数数列
 5000以下のあい異なる素数で、加算平均がぴったり 2022 の数列を作る。
 数列の項数(要素数)を最大化する、最大はいくつか。
 最大数と数列を表示する。
 
※解答例(もちろん4以上がある)
 4
 [1747, 2099, 2113, 2129]
※実行時間は素数生成を含めて、4秒以内
 最大な数列は複数通りあると思うので、一例のみで

519:デフォルトの名無しさん
21/12/29 15:58:08.20 czxFIFL7.net
答えは595個?
計算機+理詰めで595個っぽいけど

520:デフォルトの名無しさん
21/12/29 16:38:34.79 cOaqDcVM.net
「Log4j」2.17.0にもリモートコード実行の脆弱性

521:497
21/12/29 20:37:12.14 GN7CzEgH.net
>>497 c++
 URLリンク(ideone.com)
 "素数-2022"で適当に最大化DPすれば、合計0相当の所に答えが……。
 個人的には他の復元方法を見たかった。
 pythonは遅いのであきらめた(高速化方法を知らない)
>>498
595個でした。手作業でできるレベルなら……

522:デフォルトの名無しさん
21/12/29 22:36:34.62 d+UhR9Ru.net
オレがやったのは
p[n]をn番目の素数、
P[n]をn番目までの素数の集合、
s[n]をP[n]の和
a=2022として
まず素数のn元集合で平均が1番小さくなるのはP[n]でその平均値s[n]/nは単調増加だからs[n]/n>aの時元数n以上の解はない
s[596]/596>aは計算機で確認
なので595元集合で解があればそれが最大
s[595]/595<aなのでP[595]はダメ
s[596]-595a = 1205525 - 1203090 = 2435は素数ではないのでP[597]から一個消すのはダメ
s[597]-595a = 1209898 - 1203090 = 6808 はp597=4373以下の素数2459,4349の和で表すことができる
よってP[597]\{2459,4349}の和は595aとなる
完全に全自動で探索するプログラムも作れそうだけど答え出たらもういいかなと手が止まってしまった

523:デフォルトの名無しさん
21/12/30 12:24:49.52 sGmJGaqc.net
何個取り除いたら平均2022にできるか考えると
確か74個だったけな?
JavaScriptで1秒もかかんなかったか

524:502
21/12/30 12:30:19.06 sGmJGaqc.net
表示時間除いたら1秒かかってないな
探索はほぼ一回でボトムまで到達して
発見された

525:502
21/12/30 12:38:50.05 sGmJGaqc.net
可能と不可能が極端に分かれている問題なので
事前のブランチカットだけが重要なヘンなお題w
>>352はまだ未解決

526:デフォルトの名無しさん
21/12/30 20:10:02.90 jVgYGZiS.net
>>502
最大の個数を求めよやろ?

527:デフォルトの名無しさん
21/12/30 20:24:56.63 JL7tAErK.net
千葉興業銀行、4月から副業解禁 県内地銀初
南都銀行、4月から行員の副業制度導入 ウェブ制作など
荘内銀、行員の副業・兼業解禁
フィデアHD、副業・兼業制度を導入
横浜銀行、10月から従業員の副業・兼業解禁
鹿児島銀、副業解禁を検討 九州FGと肥後銀は10月導入
肥後銀行が副業制度導入へ 多様な働き方認める 10月から

528:デフォルトの名無しさん
21/12/31 15:04:12.13 bqUePCKa.net
>>497
haskell
URLリンク(ideone.com)
>>5


529:01のアルゴリズムを自動化してみた すげー簡単なところでどハマりして半日かかった まだ解なしの場合とかの動作チェックとかしてないけどもうどうでもいい



530:デフォルトの名無しさん
21/12/31 15:09:29.33 bqUePCKa.net
ちなみに出力形式は
(最大個数、最大素数の通し番号、最大素数までの間での素数で除外する素数のリスト)
try 67%5
→(5,8,[2,3,5])
は最初の個数8個[2,3,5,7,11,13,17,19]から[2,3,5]を抜いた[7,11,13,17,19]の5個が平均が67/5になる素数のリストの一つ
長さ
6以上はない

531:デフォルトの名無しさん
22/01/08 11:42:09.36 B5P29Cqv.net
お題:
xをゼロ以上の浮動小数点数として
2^floor(log2(x))
の計算。ただし、x == 0 の場合はゼロとする。

532:デフォルトの名無しさん
22/01/08 18:45:49.69 qvdwzZse.net
>>481
>binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが
>double-double演算です。
現在検討中ですが、binary64 中には仮数部に使用できるビット幅は 52 bits しかありません。つまりケチビット表現です
53+53 とのことですが、実際には 53 + 52 = 105 しか格納できないのではないでしょうか?

533:464
22/01/08 21:07:22.52 Xrz2Tlot.net
>>510
上位の±1/2ulp相当が下位になります

534:デフォルトの名無しさん
22/01/09 01:28:46.61 /FHAAuzb.net
>>509
perlでワンライナー。入力は標準入力からする。
perl -MPOSIX -ne 'chomp;$n=$_?2**floor(log($_)/log(2)):0;print "$n\n"'
でも、こんなので良いの?自分ではほとんど何も考えてないんだが。
(log2()がないからlog(n)/log(2)でやるって所ぐらいしか工夫がない)

535:デフォルトの名無しさん
22/01/09 07:56:15.63 9G1CcY2f.net
>>509 C++
環境+コンパイルオプション依存 little endian, double = 64bit, long double = 128bit
double fl2( double x )
{
*( (uint64_t*) &x ) &= 0xFFF0000000000000LLU;
return x;
}
long double fl2( long double x )
{
*( (__uint128_t*) &x ) &= *( (__uint128_t*)"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF" );
return x;
}

536:デフォルトの名無しさん
22/01/09 07:59:19.16 +WoQnCHD.net
2進表記した時に先頭のビット以外を0にすればいいだけだがワンライナーで書ける気がしない

537:デフォルトの名無しさん
22/01/09 08:00:08.09 +WoQnCHD.net
先頭のビットというより「(存在するなら)0じゃない一番位の大きいビット」だな

538:デフォルトの名無しさん
22/01/09 08:27:45.00 Gu7/igUi.net
ビットいじる方法だと、非正規化数が0に、NaNが無限大になる
そういえば、無限大やNaNはどうすればいいのだろうか

539:509
22/01/09 09:16:00.82 42F2CcU6.net
Python
でかい値だとうまくいかないやつ
def foo(x):
_c = x * float(2 ** 52 + 1)
_xh = c - (c - x)
_if xh > x: return(xh * 0.5)
_return(xh)
>>516
深く考えてませんでしたw

540:509
22/01/09 09:53:47.91 42F2CcU6.net
>>512
log2(n)をlog(n)/log(2)で近似した際の「誤差」
(ぴったり整数値になって欲しいのにそれよりも数ulp小さい値になったとか、
数ulp大きくて、ぎりぎりfloor()で切り捨てられる筈の値が1大きくなったとか)
を補償するコードが欲しい。

541:デフォルトの名無しさん
22/01/09 15:38:39.37 DwVfG/qv.net
そこは性能とトレードオフになるしかない気はする
例えばfloor( log 32 / log2 ) = 5が使用上の動作だけど
log 32/log2 =4.


542:9999999999978 × 10^0が返されて答えが4になってしまうのを避けるならおそらく大きすぎる場合は無視していいから res' = floor( log x / log2 ) if (2^res'* 1.5) < x // (1.5倍でも届かないなら不当な丸め誤差が出たと判断) then res = res' + 1 else res = res' とかちょっと汚い書き方するしかない希ガス



543:デフォルトの名無しさん
22/01/09 21:50:51.38 sZC3oXej.net
なんか変なこと書いた
res' = floor( log x / log2 )
if 2^res' < x
then res = res' + 1
else res = res'
やな
res'の算出で丸め誤差は-1までと仮定して補正する
しかしもちろんlog(x)とか2^nハード的にFPUとかで高速にやってくれてしかも整数演算は誤差なしでやってくれる前提
この辺は高級言語プログラマレベルの話でなんとかなるもんではない
やるならアセンブリ言語レベルでやるしかない

544:デフォルトの名無しさん
22/01/10 00:03:40.12 gj6cLR2i.net
>>509 C
URLリンク(ideone.com)
非正規化数、NaN、無限大とかはそのまま返すようにした
やり方は>>513と変わらない

545:509
22/01/10 00:53:57.15 MGxmK4tZ.net
いまどきのコンパイラなら、frexp()やldexp()をいい塩梅に最適化してくれるのだろうか?
from math import frexp, ldexp
def foo(x):
_m, e = frexp(x)
_if m == 0: return 0.0
_return ldexp(0.5, e)

546:512
22/01/10 01:47:47.54 av6tewvz.net
>>509
またPerlでワンライナー。
perl -ne 'chomp;if($_<=0){print"0\n"}else{for(my$i=0;;$i++){if((1<<$i)>$_){print 1<<($i-1),"\n";last}}}'
今度は計算している内容から考えて結果が同じになるようにした。浮動小数点演算をしていない。
また整数値が何ビットであるかも考慮しておらず、Perlの整数が32bitだった場合は2^32以上の値を入力されたら多分うまく動かない。
当然64bitだったら2^64以上の値の入力で多分うまく動かない。

547:509
22/01/10 02:23:50.20 MGxmK4tZ.net
>>522の修正
from math import frexp, ldexp
def foo(x): return 0.0 if x == 0 else ldexp(0.5, frexp(x)[1])

548:デフォルトの名無しさん
22/01/10 03:27:40.49 av6tewvz.net
>>509
またまたPerlでワンライナー。
perl -MPOSIX -ne 'chomp;if($_==0.0){print"0\n"}else{print ldexp(0.5,(frexp($_))[1]),"\n"}'
これは>>524の真似(ていうかやってること同じ)。

549:デフォルトの名無しさん
22/01/10 12:43:53.01 SgLm6fjp.net
>>511
それは答えになっていないかと
質問を変えます。下位側の指数部も意味を持つようにインプリメントするべきでしょうか?

550:464
22/01/11 02:38:04.94 i2HiBm5J.net
>>526
先人の実装例だと、
上位 + 下位 = double doubleの数値
という事になってますね(上位側の指数が決まると、下位側の指数も決まる)。
URLリンク(na-inet.jp)
勿論、そう実装しないのもあり。

551:デフォルトの名無しさん
22/01/11 03:06:24.10 Y9TTYX77.net
>>527
となると、
>>510
>binary64 中には仮数部に使用できるビット幅は 52 bits しかありません
よって下位側指数部無視なら 53bit + 52 bit = 105bit の実装となりますが?
下位側指数部有意ならば、下位側にもケチビットを適用できますが、今度は仮数部が 106 ビットとはいいきれなくなりますね(数によって変わる)

552:デフォルトの名無しさん
22/01/11 03:08:13.70 Y9TTYX77.net
>>527
失礼 pdf が紹介されていることを見落としていました、精査します、紹介ありがとうございます

553:デフォルトの名無しさん
22/01/30 18:02:46.10 Np8aVX2s.net
お題: 1より小さい実数を1以上2より下にせよ
< 0.123
> 1.23
< 0.0000123
> 1.23

554:デフォルトの名無しさん
22/01/30 18:25:00.85 A8jov


555:ols.net



556:蟻人間
22/01/30 20:39:55.64 DZg7owi9.net
お題: 質量0.2 kgの直方体の物体が摩擦のある水平な床の上にある。
物体の初速を右向きの0.5 [m/s]とすると、物体は転倒することなく底面が床に接したまま、約x秒後に自然停止した。xより垂直抗力F[N]と動摩擦係数kを求めよ。
重力加速度を 9.8 [m/s^2]とする。

557:蟻人間
22/01/30 20:58:19.92 DZg7owi9.net
お題(HTML/JavaScript): ユーザがGoogleから訪問した場合は、3秒間ブラウザを停止させるようにせよ。

558:デフォルトの名無しさん
22/02/01 07:45:34.60 /+irRzAS.net
>>530
負の数や2以上の数は?

559:デフォルトの名無しさん
22/02/01 16:02:38.13 zoPPBktH.net
>>534
・・・!

560:デフォルトの名無しさん
22/02/01 18:02:38.08 zoPPBktH.net
お題: -1 < n < 1 の実数nを-10 < m < 10の実数m(ただし1桁目が0を除く)に桁上げせよ(>>530の改良)
< 0.123
> 1.23
< -0.00056
> -5.6

561:デフォルトの名無しさん
22/02/01 20:01:29.11 TQ6+L4kb.net
負だったらabsolute取るだけのことじゃん

562:デフォルトの名無しさん
22/02/01 23:48:43.79 /+irRzAS.net
>>536
perl
ワンライナー。以下はbashのコマンドラインから実行して試した。
入力は標準入力で一つづつ改行する。
perl -ne 'chomp;$n=$_;while(int(abs($n))<1){$n*=10}print "$n\n";'
やってることは見ての通り殆ど何も考えず10倍し続けるだけ。

563:デフォルトの名無しさん
22/02/21 17:49:01.62 QCKFV9kK.net
もうすぐ22日、今年は "22/2/22"といつもより多め
[お題] 偶数ゾロ目
URLのページに都道府県別の人口が載っている。
 URL: URLリンク(ideone.com)
 今回使用するのは、2020/10のデータ
 同じ県は一回のみで、異なる県を 22 県選らぶ。
 (単純な選び方は全部で NCR(47, 22) = 約14.8兆通り)
 整数A,Bが与えられる(1<=A<=B<=1億)
 選択した22県の人口合計が A以上B以下となるのは何通りか?
1) 44444444 44444444 --> 214209
2) 22222222 44444444 --> ?
3) 44444444 66666666 --> ?
※上の三問を全部で5秒程度で
 想定解はあるが、もっとスマートな方法がありそう
 「またか」と思った人、以前の問題とは想定解はかなり違う

564:デフォルトの名無しさん
22/02/23 19:08:44.10 jKeAH0Dy.net
>>536
やぱしn==0は除外?

565:デフォルトの名無しさん
22/02/24 00:35:12.16 5B3hmiET.net
>>540
一桁目が0は除外してね

566:デフォルトの名無しさん
22/02/24 08:38:30.17 GiducjAN.net
難しい、こんなの小学生が解けるのか?
今年の中学受験の算数で一番の良問がこれらしい [976717553]
スレリンク(news板)

567:539
22/02/25 17:25:00.82 STd/IFZD.net
>>539
旬だと思って出題
URLリンク(ideone.com) 下部に追加
半分全列挙 + 尺取り法
早い言語でしかできない解答例でした

568:デフォルトの名無しさん
22/02/25 19:14:08.69 RZ7O9d2K.net
>>543

時間取れなくてやれてないが季節感あるネタ好き

569:デフォルトの名無しさん
22/02/26 19:41:18.44 4VT1Qgxn.net
haskellでやったらやっぱり5秒はきつか�


570:チた



571:デフォルトの名無しさん
22/02/27 02:34:25.32 VdMMR1Xg.net
お題: RustかGoでバイナリーサーチを実装してください

572:デフォルトの名無しさん
22/03/20 12:30:16.47 nN0Ys+dW.net
お題: トライ木を使ってサジェスト機能を実装してください
$ prog
> w
world
would
will
wish
辞書は任意の大きさとする
入力は英語、または日本語とする

573:デフォルトの名無しさん
22/03/20 19:32:45.03 Ycqbgo6j.net
>>545
なんかHaskellってGHCのオプションに-O2とか指定すれば結構早くなった記憶がある
あとListじゃなくVector使うとか

574:デフォルトの名無しさん
22/03/20 19:41:12.56 sy393qRd.net
お題 バッタの大冒険
 a(1),a(2),⋯,a(n) を相異なる正の整数とし、M を n-1個の正の整数からなる集合と
する。また、M は s=a(1)+a(2)+⋯+a(n) を含まない。数直線の 0 の地点にいるバッタが
数直線の正の向きに n 回ジャンプする。 n 回のジャンプの距離は a(1),a(2),⋯,a(n) の並べ替えである。このとき並べ替えをうまく選べば、バッタがM の要素に対応するn-1点に一度も着地しないようにできることを証明せよ。
↑数学オリンピックの問題
もちろん証明はどうでもよろしい
お題は(ジャンプの幅のリスト、禁止点のリスト)から禁止点を交わしていく飛ぶ順を見つけるプログラムを実装せよです
入力
([3,5,8],[5,10])
出力
[8,5,3] #着地するのは8,13,16で禁止点5,10をかわしている
入力
([5,6,8,10,13,15],[2,18,24,29,45])
出力
[15,13,10,8,6,5] #着地するのは15,28,38,46,51で全ての禁止点をかわしている
入力
([3,26,30,32,36,44,53,62,68,82],[36,40,59,79,92,126,178,233,394])
出力
[82,68,62,53,44,36,32,30,26,3] #同文

575:デフォルトの名無しさん
22/03/20 21:13:54.18 yn4DTgXG.net
2番目の例着地するのは
15,28,38,46,52,57
ですた

576:デフォルトの名無しさん
22/03/22 20:44:30.68 0IfoPmot.net
>>549
は数学の問題としても面白いけどココはプログラムのお題スレなのでアルゴリズムそのもの考えるのは嫌な人のためにアルゴリズムひとつ紹介しておきます
以下の探索で線形オーダーで解を見つけられます
自分で考えたい人は無視してください
以下aを最大ジャンプとします
a=a(n)としておく
(A)一回目を最大ジャンプで飛んだとして最初の禁止点に届かないかギリギリ届くとき
一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
この順番でとんて行って最初に最初の禁止点をi回目に超えたとする
解のジャンプとして
b(1),b(2),...,b(i-1),a,b(i),...,b(n)
とすると全ての禁止点をかわしている
(B) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えて、しかも禁止点以外に着地できるとき
一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
解のジャンプとして
a,b(1),...,b(n-1)
とすると全ての禁止点をかわしている
(C) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えるが別の禁止点に着地してしまうとき
この状況だとa(1)〜a(n-1)のいずれかのジャンプa(i)でa(i)もa+a(i)のどちらも禁止点でないものが取れる( (∵) 全てのi:1〜n-1でa(i)かa+a(i)のどちらかが禁止点とするとこれだけでn-1個の禁止点全部尽くされてしまうけど、この中には最初の仮定である“一回目aで飛んだら禁止点”はこの中には出てこないので矛盾 )
それをa(n-1)としよう
最小の2回をa(n-1),a(n)と飛んだとしてこの時点で最初の禁止点と最初a(n)だと踏んでしまう禁止点の2点は超えているので残りの禁止点はn-3個以下しか残ってない
そこでa(1)〜a(n-2)



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch