2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

スレ立てるまでもない質問はここで 165匹目

1 :デフォルトの名無しさん (ワッチョイ 9bac-kina):2023/06/20(火) 20:24:27.69 ID:Eu3jcPcB0.net
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。

次スレは>>980が立てること

【前スレ

スレ立てるまでもない質問はここで 164匹目
https://mevius.5ch.net/test/read.cgi/tech/1681132438/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

238 :デフォルトの名無しさん :2023/11/06(月) 09:51:53.42 ID:l/+fXds50.net
アルゴリズムの質問をしてるけど「処理を速くしたい」が本当の目的に見えた

239 :デフォルトの名無しさん :2023/11/06(月) 10:06:39.90 ID:48qtdwXca.net
漏れは一回しかコメントしてないのに
しつこく粘着と言われるのは心外だな

240 :デフォルトの名無しさん (ワッチョイ 09b6-MVD/):2023/11/06(月) 10:27:12.28 ID:GE2NWi4a0.net
>>233
文面から得られる限られた情報だけで好き勝手言ってくる連中の相手しても疲れるだけで得るものないよ
もう話を打ち切って何を言われてもレスを返さない方がいい

241 :デフォルトの名無しさん (ワッチョイ 81bd-60ly):2023/11/08(水) 14:59:07.84 ID:/h3wZAhE0.net
HiMacroEXというソフトのことについて教えていただきたいです
すみません。プログラミングは全くわかりません

4か所クリックしたいとこがあって
1の範囲(1?四方くらい)をランダムに1クリック

2の範囲を〜

というのを4まで自動で操作させたいのですが可能でしょうか?

可能でしたらコード?を教えていただけるとありがたいです
試しにChatGPTで聞いてみたらHiMacroEXについてはわからないと言われてしまいました
よろしくお願いいたします

242 :デフォルトの名無しさん (ワッチョイ 4279-ztC3):2023/11/08(水) 19:52:57.00 ID:5o5qiXKK0.net
HiMacroEXの事はちらっとしか確認してないが、HiMacroEXの事はもう忘れた方がいい
ChatGPTに聞けるなら「Windowsで画面のクリックを自動化するソフトを教えろ」で出てくる物を使えば使い方まで教えてくれるはずだよ

243 :デフォルトの名無しさん (オイコラミネオ MM39-H91/):2023/11/08(水) 20:00:14.61 ID:OWhw2ySbM.net
>>241
こうかな

#X=INT(RND()*300)
#Y=INT(RND()*300)
LMouCl Down (#X,#Y)
250
LMouCl Up (#X,#Y)

rand ~ <Switch> ~ <Case 1> を使って揺らぎを出せる

244 :デフォルトの名無しさん (ワッチョイ c27b-NnU0):2023/11/08(水) 20:23:43.06 ID:EduYhT2N0.net
>>232
普通は、Ruby on Rails, PostgreSQL

Node.js は地獄じゃね?

>>233
このスレではなく、アルゴリズムのスレで聞いてほしい。
そちらの方が専門家が多そう

このスレは一般的な事が中心。
明らかに専門的なものは、そういうスレで聞いて

245 :デフォルトの名無しさん :2023/11/09(木) 16:58:15.77 ID:RhTSgqV20.net
どこで聞けばいいのか最適な場所が探し出せなかったのでここで質問します

店舗のドアをお客が開けっ放しにするので、開閉センサーから信号を拾って、スマホかwindowsPCのどっちかで開いてる間、任意のwavをループ演奏させるようなシステムが欲しいです。
演奏のスピーカーは奥の受付で鳴らすようにしておいて、開けっ放しにしてきたお客が自分だと気が付いて自分で閉めに行くように誘導したい。

で、既製品でそういう物がないかなと思って探したけど、センサーユニットとスピーカーが一体のものしかない。音もけたたましい警報音しかない(もっとマイルドで神経逆撫でしないのがいい)。
じゃあ誰かにワンオフで制作を頼むか、と思ったけど一体どこに頼めばいいのかわからない。

~~~で***な業者を探すとそういうのを作ってくれるところが見つかるよ。的な情報がありましたらお願いします。

246 :デフォルトの名無しさん :2023/11/09(木) 17:24:41.92 ID:pkuzu9Bn0.net
>>245
ググることもできないカスか?

247 :デフォルトの名無しさん :2023/11/09(木) 17:38:28.87 ID:hgA7lROp0.net
業者向けすぎるw

248 :デフォルトの名無しさん :2023/11/09(木) 17:41:12.76 ID:AlkKUHEX0.net
ラズパイとセンサーで自作できないの?

ラズパイの本に載ってそうだけど

249 :デフォルトの名無しさん :2023/11/09(木) 19:00:36.76 ID:OOW6kGqj0.net
旧式の冷蔵庫で開けっぱなし防止するのにそういうセンサーが売ってる
音もそこまでうるさくは無い

250 :デフォルトの名無しさん :2023/11/09(木) 19:51:29.88 ID:Om7+brvL0.net
ラズパイどころかarduinoでできる

251 :デフォルトの名無しさん :2023/11/09(木) 20:32:46.55 ID:RhTSgqV20.net
>>248
本業が忙しいので自作は無理です・・・
ワンオフで作ってくれるなら30万円ぐらいまでなら出せる。細かい我が侭全部聞いてくれるなら100万まで出せます。
自動ドアにすると色々挟まるリスクがあるので極力避けたいのです
なお自動ドアに強引に付け替えると多分100-200万円かかる

PCの知識は、30年前の工房時代にPC98でBASICでプログラム書いたりはしてた。
RS232C経由で何かセンサーと通信できるような回路があれば、友達にマシン語でプログラムモジュール書いてもらって制御はBASICで・・とかできたかもしれないが、
今からラズパイの勉強して・・っていうのは現実的に無理。日々の業務とかギルドの役員の仕事とかでもう一杯一杯なんです。

>>249 威圧感のないオルゴール音楽みたいなのを待合室に流したい。
リーベックスの窓センサーを買ってみたらループに出来るのはけたたましいサイレンだけだったりしてダメだった。
ファミマの入店ジングルみたいな奴から始まってそのまま閉めないでいると延々と曲が続く・・みたいなのが欲しいのです。
https://www.youtube.com/watch?v=fCHRmWi5Jtg
こんな感じのwavを指定したい。
量産したら多分1000個ぐらいは売れると思うんだよなあ・・・

252 :デフォルトの名無しさん (スップ Sd62-uaP8):2023/11/09(木) 22:59:48.61 ID:+ZNjn+w4d.net
>>251
無能老人は消えろ

253 :デフォルトの名無しさん :2023/11/10(金) 01:00:38.18 ID:LIE+dKa60.net
音楽再生側をつくると大層になるからBTスピーカにしてセンサー側から音楽を飛ばす
スピーカーをスマホかDAPにしていいならセンサーはBTリモコン
LinuxのメンテしたくないからM5なんかのESP32系が適当かな

254 :デフォルトの名無しさん (スプッッ Sdc2-hcR4):2023/11/10(金) 10:16:12.63 ID:q7MWGD8od.net
ラズパイは後々のメンテが面倒だから
win機がある前提なら適当なUSB接続のarduino互換機で作れば簡単だろうな
arduinoとはUSB-HID辺りで通信してセンサー値の取得のみ、
win機でそれを受けて必要なら適当なスピーカーから流す

255 :デフォルトの名無しさん (ワッチョイ 628a-2trl):2023/11/10(金) 11:02:12.39 ID:77uJp0Lq0.net
>>251
クラウドソーシングでググって適当に募集かけてみな

256 :デフォルトの名無しさん :2023/11/10(金) 11:58:08.72 ID:TyXpAfcs0.net
センサー側は市販のもので十分
PC側はセンサー管理アプリ入れてカスタマイズ用のスクリプトを書く

リモート対応のみでよければ初期開発費用は10万出せば受けてくれる人は見つかる
現地対応を求めるなら交通費、宿泊費、日当x2日以上なので+10万以上は必須
瑕疵担保期間以降のサポート費用は別途

257 :デフォルトの名無しさん :2023/11/10(金) 12:23:00.78 ID:kFubIoxE0.net
どういうドアか分からないけど、鳴った音がやまないくらいのことでドアを閉めない客が閉めに戻るかね
要はドアがしまりゃいいんだよね? もっとよくあるソリューションあると思うけどそれじゃなきゃダメなの?

258 :デフォルトの名無しさん :2023/11/10(金) 12:42:25.04 ID:Uyu6+1RQ0.net
ドアクローザーでいいわな

259 :デフォルトの名無しさん :2023/11/10(金) 12:43:56.49 ID:nsB99VYV0.net
>>256
コンピュータ明るくないとこへPC使ったソリューション入れると
十中八九面倒事につながる

260 :デフォルトの名無しさん :2023/11/11(土) 18:26:53.44 ID:ySgC+QzF0.net
Windowsでプログラムが「応答なし」となる理由はなんなんでしょうか。
コンテキストスイッチで必ずアプリケーションには実行時間が割り振られるのに、
処理が多くなったからとか、他のアプリは大丈夫なのにそのアプリだけとか、分かりません。

コンテキストスイッチの単位時間内にウィンドウメッセージを処理しきれなくなった感じでしょうか?

261 :デフォルトの名無しさん :2023/11/11(土) 18:31:45.02 ID:6Uwmj7p80.net
プログラムの優先度が低すぎて
応答すらできなくなるんじゃないかな
あるいはメモリを確保しに行って
延々と失敗しているとか

262 :デフォルトの名無しさん :2023/11/11(土) 19:03:24.06 ID:T+Kc9o9H0.net
メッセージが 5 秒以内に取得されていない場合、DWM はウィンドウがハングすることを宣言します。
https://learn.microsoft.com/ja-jp/windows/win32/win7appqual/preventing-hangs-in-windows-applications

263 :デフォルトの名無しさん (ワッチョイ ff96-hgj4):2023/11/12(日) 00:04:30.57 ID:k0c8UDji0.net
処理スレッドは分けるべきなんだけどこの程度ならいいかと端折りがち
結局のところバグで処理を戻せてないんで落として正解

264 :260 :2023/11/13(月) 06:23:58.73 ID:1/Labbhe0.net
>>262 このページは初めて見た。ありがとう。

265 :デフォルトの名無しさん :2023/11/13(月) 11:57:51.38 ID:nODju79Ra.net
プログラム学んでて初級者本間でやってるうちは普通に楽しいし理解してできるんだけどそれ終わったら結局これ作りたいって強い意志がないからそこで終わっちゃう
この現象3言語くらいやってるわ適正なしか?

266 :デフォルトの名無しさん :2023/11/13(月) 12:01:31.59 ID:qu6D3q1S0.net
>>265
適正無し

267 :デフォルトの名無しさん :2023/11/13(月) 12:45:42.10 ID:qAieNn1Da.net
適正というかそれ以前に本人も自覚してる通り
造りたいもんが無いんだろ

268 :デフォルトの名無しさん :2023/11/13(月) 12:47:13.61 ID:qAieNn1Da.net
>>262
どんなにbusyな状況でもWM_PAINTだけは処理しとけ

269 :デフォルトの名無しさん (ワッチョイ ffb6-EFnx):2023/11/13(月) 20:14:53.70 ID:lWzkFiOt0.net
>>265
プログラミングのお題スレで、コードゴルフ・パズルでもやれば?

高所得のプロになりたいなら、
米国年収でも、Ruby on Rails, AWS Solution Architect が13万ドル!
Ruby も9.3万ドルと、Go/Rust/Elixir の3大言語を超えた

YouTube で有名な雑食系エンジニア・KENTA は、
初心者のキャリアパスは、Rails → Go だけと言ってる

筑波大学も使っている、Railsチュートリアルの古いバージョンなら、
Railsチュートリアルのサイトで、Rails 5 を無料で読める

でも、面白くはない

270 :デフォルトの名無しさん (ワッチョイ 7f74-n7Dx):2023/11/13(月) 20:37:21.91 ID:nk0ol2uO0.net
はいどうもKENTAでーす。
プログラミングができないのは普段ナンパしたりして楽しく遊べてないからですね、って感じですね。
ではまたお会いしましょーう。

271 :デフォルトの名無しさん (ワッチョイ 1f29-Qf/E):2023/11/14(火) 09:22:44.62 ID:d7IKRPEH0.net
趣味グラムなんて必要だから作るとか欲しいから作るもんだろ

272 :デフォルトの名無しさん (ワッチョイ 9f7c-gFzT):2023/11/14(火) 19:12:47.39 ID:xujXPfzz0.net
俺の場合だとゲームでチートしたいとか解析して優位に立ちたいって目標があってプログラミング勉強したからな

某MMOのギルド管理システムとか作ってユーザ数万人居たとかもやった

ディスコの某ゲーム用のプラグイン作ったり

273 :デフォルトの名無しさん (ワッチョイ 1f01-vgtH):2023/11/14(火) 20:05:34.39 ID:eAuNTGnN0.net
誰も聞いてませんよ

274 :デフォルトの名無しさん :2023/11/14(火) 20:28:34.28 ID:QUrDO32Ka.net
はいはい
自演自演

275 :デフォルトの名無しさん :2023/11/22(水) 05:33:05.37 ID:gEe16+Fw0.net
初心者なので初歩的な質問になりますm(_ _)m

phpのフレームワークlaravelについての質問なんですが

Illminate/Foundation/Application.phpのApplicationクラスのbootstrapWithというメソッドの中に$this['events'] -> dispatch( 〜
という記述があるのですがこの$thisはApplicationクラスのインスタンスだと思うのですが
なぜ$this['events']のように$thisの後にブラケットが続いてるのでしょうか?

dd($this)とやって調べて見ましたがやはり配列ではなくApplicationのインスタンスで
dd($this['events'])で調べたらDispatcherというオブジェクトでした
なぜブラケット構文でインスタンスにアクセスできるのか分かりません
この$thisはなんですか?

276 :デフォルトの名無しさん :2023/11/22(水) 05:39:36.07 ID:11DRYg6d0.net
>>275
初心者というより馬鹿なだけでは?
スレ一覧からどのスレで聞けば良いかすらわからんの?

277 :デフォルトの名無しさん (ワッチョイ 72e1-N5Jg):2023/11/22(水) 08:59:16.71 ID:gEe16+Fw0.net
>>276
すみません、phpのスレが無かったので

278 :デフォルトの名無しさん (ワッチョイ a155-YW6P):2023/11/22(水) 09:47:37.86 ID:LokQ4a0j0.net
>>277
よく探して

279 :デフォルトの名無しさん :2023/11/22(水) 13:47:03.92 ID:gEe16+Fw0.net
>>278
了解です。

280 :デフォルトの名無しさん :2023/11/22(水) 14:00:09.19 ID:gEe16+Fw0.net
>>278
ありました
iPhoneなので専ブラが使えなくて広告でごちゃごちゃしてて(^^;よく見ません出した
すみません

281 :デフォルトの名無しさん :2023/11/22(水) 16:07:00.75 ID:11DRYg6d0.net
>>280
>iPhoneなので専ブラが使えなくて広告でごちゃごちゃしてて(^^;よく見ません出した

こういう嘘もやめろよ
やっぱり単に馬鹿なだけだろ

282 :デフォルトの名無しさん (スププ Sd22-jNFU):2023/11/23(木) 09:28:29.23 ID:PBYBAIGvd.net
今のgccコンパイラは自動変数でも0で暗黙の初期化が行われるんすか?不定値にはならずいつも0になります。

283 :デフォルトの名無しさん (スププ Sd22-jNFU):2023/11/23(木) 09:39:20.91 ID:PBYBAIGvd.net
>>282 でも関数内では不定値になります

284 :デフォルトの名無しさん :2023/11/23(木) 14:18:42.81 ID:aD4U/tnC0.net
関数外のは自動変数と言わない
初期値指定のない静的変数が0で初期化されるのは規格に明言されてる、たぶん大昔から

285 :デフォルトの名無しさん (スププ Sd22-jNFU):2023/11/24(金) 17:07:44.98 ID:emckAcP4d.net
#include <stdio.h>

void func(void); // 関数プロトタイプ

int main(void)
{
int a; // このaは0で初期化される
printf("a=%d\n", a);
func();
return 0;
}
void func(void)
{
int b; // このbは不定値になる
printf("b=%d\n", b);
}

286 :デフォルトの名無しさん :2023/11/24(金) 17:46:51.01 ID:acItGeQV0.net
スタックの使われ方でそうなるだけ
そのaの0初期化を保証する文書はないと思う

287 :デフォルトの名無しさん :2023/11/24(金) 18:31:21.01 ID:A049oz9t0.net
というか初期化は癖にしとけ

288 :デフォルトの名無しさん :2023/11/24(金) 21:57:59.22 ID:pe/5i+Cu0.net
スタートアップルーチン次第で使う領域の0埋めはできるよ
Flashの少ないマイコンでコード削減のために使われたりする

289 :デフォルトの名無しさん :2023/11/25(土) 14:54:45.61 ID:3au87Jfr0.net
でっていう

290 :デフォルトの名無しさん :2023/11/27(月) 12:39:19.62 ID:kSLkA03P0.net
ユーザーモードでもデバドラかけるけどカーネルモードで実装しなきゃいけない理由ってなんなの?性能だけ?
他のユーザーモードプログラムからプロセスの中身を隠したいとか?
あと、ユーザーモードだとタスクマネージャーとかでユーザーが終了させちゃう恐れもあるか
他になんかある?

291 :デフォルトの名無しさん :2023/11/27(月) 19:51:30.06 ID:/cbu4sL+0.net
権限の違いだけだよ
ユーザーモードのドライバは署名不要で良いと思うんだけどねえ

292 :デフォルトの名無しさん :2023/11/29(水) 22:11:26.30 ID:9Fs/PVQH0.net
画像のコマンドプロンプトなんですが
echoで
「変数A」は表示されるのですが
「変数B」が表示されないのはなぜでしょうか?
https://i.imgur.com/zY8QqWQ.jpg

293 :デフォルトの名無しさん (ワッチョイ ffde-Ura4):2023/11/29(水) 23:17:18.73 ID:11rLHIi40.net
>>292
遅延環境変数でググると原因と対策が出てくる

294 :デフォルトの名無しさん :2023/11/29(水) 23:43:47.87 ID:5e0Dum8b0.net
powershellでやれ

295 :デフォルトの名無しさん :2023/11/29(水) 23:57:34.72 ID:9Fs/PVQH0.net
>>293
やっと解決できました
ありがとうございました
https://i.imgur.com/1dJlbVi.jpg

296 :デフォルトの名無しさん :2023/12/01(金) 13:56:51.10 ID:x4GTgSrOd.net
C言語において-3が、unsigned int で4294967293になる理屈を教えてください

297 :デフォルトの名無しさん (ワッチョイ 7fd6-WSLN):2023/12/01(金) 14:58:01.47 ID:2riclQL00.net
https://en.cppreference.com/w/c/language/conversion

otherwise, if the target type is unsigned, the value 2^b
, where b is the number of value bits in the target type, is repeatedly subtracted or added to the source value until the result fits in the target type. In other words, unsigned integers implement modulo arithmetic.

298 :デフォルトの名無しさん (スププ Sd7f-1fOb):2023/12/01(金) 15:09:48.96 ID:FXqwQW8Dd.net
>>297 モジュロ演算の意味が分かりません

299 :デフォルトの名無しさん (スッップ Sd7f-O0Dn):2023/12/01(金) 15:19:46.39 ID:1ihFKBOzd.net
>>296
CPUの整数表現として負数を2の補数で表現するから

32ビットはめんどいので末尾8ビットだけ書くとして3は00000011
3の1の補数はビット反転して11111100(4294967292)
3の2の補数は1の補数に1を足して11111101(4294967293)

2の補数を使う理由はググれ

300 :デフォルトの名無しさん (スププ Sd7f-1fOb):2023/12/01(金) 15:25:11.16 ID:FXqwQW8Dd.net
>>299 やはりそうでしたか。納得しました。

301 :デフォルトの名無しさん (スフッ Sdbf-WaQs):2023/12/09(土) 16:25:29.47 ID:ZNOr2kH7d.net
C言語でオーバーフローするのは、signed だけですか?それとも、unsigned もですか?
AIに聞いても、意見が分かれていて、どっちかわかりません。

302 :デフォルトの名無しさん (スッップ Sdbf-WfBz):2023/12/09(土) 16:44:10.67 ID:ETXxeT5Ld.net
符号なし整数はmod 2^n(nはビット数)で計算します。
これをオーバーフローと表現したりしなかったりする気がします。

303 :デフォルトの名無しさん (スフッ Sdbf-WaQs):2023/12/09(土) 16:54:11.29 ID:ZNOr2kH7d.net
>>302 ありがとうございます。規格では、unsigned はオーバーフローしないときめられているようですが、コンパイラの警告が,
unsignedの場合でないですね。

304 :デフォルトの名無しさん :2023/12/09(土) 17:01:10.08 ID:ETXxeT5Ld.net
規格では符号なし整数はオーバーフローしないと書かれていて、正確な文言としてはこれが正しいようです。

305 :デフォルトの名無しさん (スップ Sd3f-Rtb0):2023/12/09(土) 17:31:31.47 ID:qyzy7PA2d.net
キャリービットが立つ=オーバーフロー

306 :デフォルトの名無しさん :2023/12/09(土) 18:36:07.10 ID:p0kpDF0H0.net
wrapping overflowのことをCの規格では「規定された動作でUBじゃないからオーバーフローとは呼ばないキリッ! wraparoundと呼べ」と言ってるだけ
一般に言うところの算術オーバーフローは発生するが規格に定められた動作なので警告は出ない

307 :デフォルトの名無しさん (ワッチョイ d7da-noSv):2023/12/09(土) 19:47:16.49 ID:dajCtWdt0.net
>>303
オーバーフローって演算結果の話なのでコンパイラでは警告でないんじゃね

308 :デフォルトの名無しさん :2023/12/09(土) 21:12:45.96 ID:p0kpDF0H0.net
実行時にしかチェックできないものとコンパイル時にチェックできるものとある

309 :デフォルトの名無しさん (オイコラミネオ MM2b-FJ+M):2023/12/10(日) 10:57:51.63 ID:o2TNvwaPM.net
SQLITEなどのDBMSで、2つ以上のカラムに
まとめてindex (B-Tree)を用意するところの
「Multicolumn indexes(Composite indexes)」
を用いる場合、select の where 節で
2つのカラムa, b に対して、
where a=値1 and b=値2
とした場合、高速化されるそうです。
しかし、b については条件を指定せずに
where a=値1
とだけ書いた場合や、
a については条件を指定せずに
where b=値2
とだけ書いた場合の速度も高速化されますか?

310 :デフォルトの名無しさん :2023/12/10(日) 11:57:41.46 ID:PVGCDu/Y0.net
はい、2つ以上のカラムにまとめてindexを作成すると、それらのカラムを組み合わせて検索条件を指定する場合だけでなく、個々のカラムに対する検索条件も高速化されます。具体的には、次のような場合にも高速化が期待されます。

1. `where a=値1` の場合: もし `(a, b)` の複合インデックスがあるなら、この条件も高速に検索できます。

2. `where b=値2` の場合: 同様に、`(a, b)` の複合インデックスがあるなら、この条件も高速に検索できます。

これは複合インデックスがB-Treeなどの構造を持ち、検索がその構造を活かして行われるためです。複合インデックスが使えると、各カラムに対する条件検索も高速に行えます。

311 :デフォルトの名無しさん :2023/12/10(日) 11:58:51.11 ID:PVGCDu/Y0.net
なぜbだけの条件でも高速されるのか説明します。

複合インデックスが `(a, b)` の形をしている場合、このインデックスはB-Treeなどのデータ構造を持ち、最初のカラム `a` によってソートされています。このようなインデックスがあると、`where b=値2` という条件も高速化されます。

原因はB-Treeの特性にあります。B-Treeは最初のカラムに基づいてツリーを構築し、各ノードはそのカラムの値でソートされています。したがって、`where b=値2` のクエリでも、インデックスを利用して B-Tree の探索を効率的に行えるのです。

ただし、この場合でも、`a` に関する条件が `where a=値1` と組み合わさると、最初のカラムが条件になっているため、より効果的にインデックスが使用されることが期待されます。

312 :デフォルトの名無しさん :2023/12/10(日) 12:13:10.46 ID:o2TNvwaPM.net
>>1
`where b=値2`
の条件だけ書いた場合になぜ高速化されるか
について、もう少し詳しくお願いできませんか。
2文字のひらがなの辞書で考えて、
1文字目をa, 2文字目をb として、
ああ
あい
あう
いあ
いい
いう
のようにならびますが、b=いを検索したい
場合、1文字目が あい と、いい の2か所
に分かれて格納されてしまい、B-Treeだと
全く別の場所になってしまいそうですが。

313 :デフォルトの名無しさん :2023/12/10(日) 12:18:53.28 ID:o2TNvwaPM.net
>>312
まず、複合カラムでない場合に限定すれば、
N文字のキーが入っている B-Treeの場合、
深さは、大体 O(log(N))になります。
検索する際、どのあたりにキーがあるかは、
一意的に深い方向に探索をすれば済むので、
大体、O(log(N)) 回程度に「進めれば」検索が
終了できます。
しかし、複合カラムの場合、条件にaを指定せずに
bだけを指定した場合、
キーは、様々な場所に分散されて格納されます
ので、この例のひらがな50音の辞書の場合なら
50か所に分かれてしまうため、
log(N) * 50 回程度の時間がかかってしまうのでは
ないでしょうか。

314 :デフォルトの名無しさん :2023/12/10(日) 14:06:39.26 ID:Ne0vvx410.net
>>312
申し訳ありません、誤解が生じました。確かに、私の前回の説明は一般的な場合に当てはまりますが、特に文字列の場合、`where b=値2` のクエリが効率的になるかどうかはデータの具体的な並びに依存します。

文字列の場合、B-Treeの挙動が通常の数値とは異なります。例えば、`ああ`、`あい`、`あう`などが順序通りに格納されることで、`where b='い'` のクエリは特に高速になります。これはB-Treeが文字列においても順序を保ちながらデータを格納するためです。

ただし、文字列の場合でも、全くの一般性があるわけではありません。文字列のソートは、通常の辞書順ではなく、各文字のバイトレベルの比較に基づいていることも考慮する必要があります。

そのため、データの実際の配置や使用しているデータベースシステムによっては、特定のクエリの性能が異なることがあります。文字列データにおいても最適なインデックス戦略は、具体的なデータとクエリによって変わることがあるので、実際のデータや使用状況を元に検討することが重要です。

315 :デフォルトの名無しさん :2023/12/10(日) 14:08:36.12 ID:Ne0vvx410.net
>>313
おっしゃる通り、複合カラムの場合、特に「条件にaを指定せずにbだけを指定した場合」、B-Treeの探索が効率的でない場合があります。

複合カラム `(a, b)` のB-Treeでは、`a` でソートされ、同じ `a` の中で `b` がソートされている状態です。そのため、`where b=値2` のようなクエリが効率的になるのは、同じ `a` 内において `b` の値が連続的に格納されている場合に限られます。

しかし、もし `a` の値が異なる場合、`b` の値も異なる箇所に格納され、深さが増加し、効率が損なわれる可能性があります。したがって、複合インデックスの効果はデータの分布に強く依存します。

一般的に、複合インデックスが効果的なのは、クエリで指定された条件が複合インデックスの順序に合致する場合です。もし `a` を指定せずに `b` だけを指定するケースでデータが分散して格納される場合、B-Treeの探索が非効率的になる可能性があります。その際は、単独の `b` に対する単一カラムインデックスを検討することが適している場合があります。

316 :デフォルトの名無しさん :2023/12/10(日) 14:17:41.16 ID:+Ev0uxFD0.net
ChatGPT使ってないとGPT回答を見分けられないのか
チューリングテストクリアだな

317 :デフォルトの名無しさん :2023/12/10(日) 16:08:39.19 ID:oYKusLHl0.net
SQLITEやOracleではINDEX SKIP SCANを使うので左端列を指定しなくてもインデックスが採用される
もちろん左端列のみを指定するより性能は劣る
SQLServerあたりだと左端列を指定しないケースではインデックスは使われない

318 :デフォルトの名無しさん (オイコラミネオ MM2b-FJ+M):2023/12/10(日) 18:25:42.40 ID:V/86XK6XM.net
[1] あ、い、う の三文字を2個並べた組み合わせを
キーに持つとして、3*3=9 個のキーを持つと
すると、B-Tree は、木の根が1つで、
1文字目で3つに枝が分かれ、別れた先
の2文字目でさらに3つに枝が分かれます。
1文字目をa, 2文字目をbとします。
図が書けないので、フォルダのように表すと、
/あ/あ (1)
/あ/い (2)
/あ/う (3)
/い/あ (4)
/い/い (5)
/い/う (6)
/う/あ (7)
/う/い (8)
/う/う (9)
となります。
[2] where a=あ and b=い
とした場合、たった一度の探索で(2)
に辿り着けます。
[3] where a=い
とした場合は、(4),(5),(6)ですが、それらは、「第一関節」の
同じ一本の枝「い」に属すのでとても効率的に探せます。
[4] where b=い
とした場合、(2),(5),(8)の三か所を探索する必要がありますが、
第一関節レベルから異なる枝に属しているので、
第二関節に行った後で第一関節まで「戻る」ような動作が必要になります。
[まとめ]
実際の探索では、「戻る」わけではないんでしょうが、
aだけを指定した場合と、bだけを指定した場合とでは、探索回数が3倍の違いが
出てきますよね?

319 :デフォルトの名無しさん (ワッチョイ 979f-g9yR):2023/12/10(日) 18:55:45.99 ID:szFLrNg10.net
INDEX RANGE SCANだな

320 :デフォルトの名無しさん :2023/12/10(日) 21:44:37.10 ID:yZwJDRXW0.net
>>318
B木って部分探索のアルゴリズムじゃないけど
トライ木辺りと勘違いしてないか

321 :デフォルトの名無しさん (オイコラミネオ MM2b-FJ+M):2023/12/10(日) 22:38:41.57 ID:sxH1jiAFM.net
>>320
本当はこうではないんですが、これとよく似た
事が起きていると思うんです。

322 :デフォルトの名無しさん (ワッチョイ 9f79-1KRD):2023/12/10(日) 23:36:28.73 ID:yZwJDRXW0.net
長ったらしいから3行で質問をまとめる努力をして欲しい
さもなくばお前が思うんならそうなんだろうお前ん中ではなという感想を述べさせてもらう

323 :デフォルトの名無しさん :2023/12/10(日) 23:59:24.31 ID:p7J4kGbi0.net
>>318
B-Treeはそういうのじゃない
ページサイズの一定割合に収まるだけのレコードがルートを含めたインデックスノードにも詰められていく

page 1 [ああ〜いい]
/
いう
\
page 2 [いう〜うう]

>>317の書いてるINDEX SKIP SCANがDBMSやデータの状況によって採用されるケースなら
インデックスがあったほうが速いということになるが採用されなければテーブルスキャンなのでインデックスなくても同じ
INDEX SKIP SCANは複合インデックスの先頭列の値の種類が少ない場合じゃないと非効率

324 :デフォルトの名無しさん :2023/12/11(月) 00:02:25.58 ID:+qYlbChh0.net
全角スペースにした

   page 1 [ああ〜いい]
  /
いう
  \
   page 2 [いう〜うう]

325 :デフォルトの名無しさん :2023/12/11(月) 00:14:14.77 ID:JY+EfkBo0.net
bカラムだけのパターンでも効くことあるんだ
sql serverしか知らないからダメだと思ってた
でも基本はbカラムだけで高速化を狙うならbカラム単体でもインデックス張るべきだと思うけど

326 :デフォルトの名無しさん :2023/12/11(月) 10:45:58.38 ID:TsCEY1+2M.net
>>323
あなたはB-Treeを理解できてない。
俺は天才だからわかる。

327 :デフォルトの名無しさん (ワッチョイ 1f9e-C3j7):2023/12/12(火) 00:59:48.51 ID:C12JHku00.net
確か、Ruby on Rails で見た

X, Y, Z 列にインデックスを付ける場合、
複合インデックス、XYZ, YZ, Z を付けるとか

文字列は先頭か末尾指定でしか、インデックスが使われないとか。
つまり、文字列の中ほどに含むと言うのがダメ

328 :デフォルトの名無しさん (スップ Sd3f-v3qT):2023/12/12(火) 01:12:27.67 ID:HomtdY1ed.net
馬鹿の妄言
Ruby

329 :デフォルトの名無しさん (ワッチョイ 1701-1GQ9):2023/12/12(火) 20:38:34.47 ID:nNQd25Q50.net
githubの中身はRailsなんだね

330 :デフォルトの名無しさん :2023/12/13(水) 00:02:50.74 ID:eFIo8YKe0.net
Github は、Rails からGo へ移行していると聞いた

YouTube で有名な雑食系エンジニア・KENTA が、
初心者のキャリアパスは、Rails → Go のみと言ってる

Ruby/Goの神・HashiCorp のMitchell Hashimoto もそう。
Ruby製のVagrant → Go製のTerraform。
今は、Goプログラマーしか求めていない

一方、Shopify, Gitlab は、Goへ移行しない

331 :デフォルトの名無しさん :2023/12/13(水) 01:13:00.41 ID:Z8G46vVkd.net
初心者は関わってはいけない

332 :デフォルトの名無しさん :2023/12/13(水) 06:50:18.41 ID:hoISaMFl0.net
どうもケンタでーす。

333 :デフォルトの名無しさん :2023/12/13(水) 06:50:39.13 ID:hoISaMFl0.net
初心者のキャリアパスは、Rails → Go のみ、って感じですね。

334 :デフォルトの名無しさん :2023/12/13(水) 06:52:26.50 ID:hoISaMFl0.net
人生は短いですので、若い時間はナンパしたりクラブいったりしましょうね、って感じですね。
ではまたお会いしましょーう。

335 :デフォルトの名無しさん (ワッチョイ f35a-v2wD):2023/12/19(火) 16:36:10.40 ID:4azPkHSc0.net
cursorというエディタを使っているのですが、凄い細かい所で気になってしまう箇所があります。
関数等を作成したときの中カッコ{}をエンターキーで改行した時に終わりの方だけ改行されてしまい、
関数(){
}
といった形になってしまいます。書式設定を確認してみたのですが設定項目を見つけられませんでした...
エンターキー1回で
関数()
{


という風に出来るようにしたいのですがどこを設定したら良いのでしょうか...あとセミコロンを入力したら自動的に行の最後に入力されて整形してくれる機能ってありますか...?

336 :デフォルトの名無しさん :2023/12/19(火) 17:12:12.21 ID:hNriuvdH0.net
K&Rあたりだと関数宣言のときだけブレース前に改行入れて、ifやelseだと改行入れずに行末に置くんだよな
一貫性ないけど、かといって
}
else
{
も冗長すぎるしわからんこともない
Javaの流行期を経て行末ブレースがデファクトスタンダード化した印象ある

337 :デフォルトの名無しさん :2023/12/19(火) 17:45:09.74 ID:kFMxEOALM.net
c#もそうなので廃れたとかないと思うけど

338 :デフォルトの名無しさん :2023/12/19(火) 19:38:44.63 ID:4azPkHSc0.net
調べたらBSDスタイルって言うんですね...
K&Rというスタイルにどうしても慣れなくて探し回ったんですが無さそうだったんで大人しくVSCodeに帰ろうと思いますありがとうございました...

202 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver.24052200